Выбор результата на основе самой строки - PullRequest
0 голосов
/ 30 августа 2018

У меня есть таблица MySQL, как

id  | ref  | c1  | c2  | c3
---------------------------
1   | 3    | x   | y   | z
2   | 2    | a   | b   | c
3   | 1    | p   | q   | r
4   | 3    | m   | n   | o
5   | 2    | j   | k   | l

У меня вопрос Как мне SELECT id и значение c1, c2 или c3 на основе значения столбца ref

то есть
для ref = 1 будет выбрано значение c1 ,
для ref = 2 будет выбрано значение c2
и
для ref = 3 будет выбрано значение c3

Желаемый результат:

id  | cX 
-----------
1   | z
2   | b
3   | p
4   | o
5   | k

Любая помощь приветствуется

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

вариант использования, когда

select id,case  ref when 1 then c1
when 2 then c2
 when 3 then c3 
  end as cx from table1

Общая падежная функция / выражение

CASE expression
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
   ...
    WHEN conditionN THEN resultN
    ELSE result
END
0 голосов
/ 30 августа 2018

Используйте CASE.

SELECT id,
       CASE ref
         WHEN 1 THEN
           c1
         WHEN 2 THEN
           c2
         WHEN 3 THEN
           c3
       END cx
       FROM elbat;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...