基于行本身选择结果

zdwk9cvp  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(244)

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

感谢您的帮助

zfycwa2u

zfycwa2u1#

使用 CASE .

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

ecfdbz9o2#

使用案例

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

相关问题