MySql case语句返回多行和多列

时间:2015-05-14 11:32:16

标签: mysql mysql-workbench

我有一张桌子

    -id   --col_1 -- col_2 -- col3 --col_4 -- col5
    ------------------------------------------------
     1       a         b       c       d       e
     2       a1        b1      c1      d1      e1
     3       a2        b2      c2      d2      e2

我需要检查col3是否包含值,如果存在,我需要显示col1和col2值,其余值应为空。如果col4包含值的另一个条件,我需要只显示col2和col5值

    -id   --col_1 -- col_2 -- col3 --col_4 -- col5
    ------------------------------------------------
     1       a         b       c              
     1                 b1             d1      e1
     2       a1        b1      c1     
     2                 b1             d1      e1
     3       a2        b2      c2       
     3                 b2             d2      e2

我不知道要遵循哪个程序来达到我的要求。我已经使用了case语句,我只检索了一个只有一列

的两个条件的记录
SELECT    
CASE
    WHEN col3 != '' THEN col4        
END as a, 
CASE
    WHEN col4 != '' THEN col2
END as b
FROM table;

任何帮助!..

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您只需要union all

select id, col1, col2, col3, NULL as col4, NULL as col5
from table
union all
select id, NULL, col2, NULL, col4, NULL as col5
from table ;