根据行本身选择结果

时间:2018-08-30 12:12:58

标签: mysql sql select

我有一个类似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

我的问题是我如何SELECTidc1c2的{​​{1}}和值列c3


对于 ref = 1 ,将选择 c1 的值,
对于 ref = 2 ,将选择 c2 的值

对于 ref = 3 ,将选择 c3 的值

所需结果:

ref

感谢您的帮助

2 个答案:

答案 0 :(得分:2)

使用CASE

SELECT id,
       CASE ref
         WHEN 1 THEN
           c1
         WHEN 2 THEN
           c2
         WHEN 3 THEN
           c3
       END cx
       FROM elbat;

答案 1 :(得分:1)

用例

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