Select multiple columns in IF clause conditionally?

Posted on

Question :

Is it possible to select different fields inside a SELECT conditionally?

Pseudocode:

CREATE VIE myview AS SELECT
  id,
  IF(signal_field == 1)
     firstname as first,
     lastname as last
  ELSE
     concat(firstname + lastname) as firstlast
  FROM mytable;

Answer :

SELECT
  id,(CASE WHEN signal_field =1 THEN firstname END) as first,
     (CASE WHEN signal_field =1 THEN lastname  END) lastname as last,
     (CASE WHEN signal_field!=1 THEN concat(firstname,lastname) END) as firstlast
FROM mytable;

Leave a Reply

Your email address will not be published. Required fields are marked *