Conditionele kolommen (MySQL)

Uit De Vliegende Brigade
Ga naar: navigatie, zoeken

In een uitgebreide select-query in een sproc van een paar honderd regels, zou ik sommige kolommen graag conditioneel willen incorporeren, afhankelijk van een input-parameter. En dat kan:

  • CASE: select case-queries of subqueries
  • IF: Select if-subqueries
  • union queries met when-statements (vaak rommelig)

Voorbeeld

CREATE DEFINER=`root`@`localhost` PROCEDURE `cond_test`(in markt tinytext)
BEGIN

select if
(
    markt="EN",    -- Conditie
    "English!",    -- When true
    "Not English"  -- When false
) as uitkomst_1;

select case

when markt="DE" then "DE!"
when markt="HU" then "Magyar!"

end as uitkomst_2;

END

Voorbeeld CASE-subquery

Zie Nesten van queries (MySQL)#CASE-statement binnen een select-query

Zie ook

Bronnen