诊疗年月 Day_1 Day_2 Day_3 Day_4 … Day_31 
200904  1    0   1   0  ...  0 
200905   0       0     0     0   ...  0 
200906   1       0     0     0   ...  0 
200907   0       0     0     0   ...  1 
  …    …       …   …    …   …   … 结果如下: 诊疗年月日 
20090401 
20090403 
20090601 
20090731 

解决方案 »

  1.   

    本帖最后由 ACMAIN_CHM 于 2009-09-23 07:36:55 编辑
      

  2.   

    SELECT * FROM (
    SELECT 
    CASE day_1 WHEN 1 THEN CONCAT(诊断年月,'01') END AS yes
    FROM  tabl
    UNION 
    SELECT 
    CASE day_2 WHEN 1 THEN CONCAT(诊断年月,'02') END AS yes
    FROM  tabl
    UNION 
    SELECT 
    CASE day_3 WHEN 1 THEN CONCAT(诊断年月,'03') END AS yes
    FROM  tabl
    UNION 
    SELECT 
    CASE day_4 WHEN 1 THEN CONCAT(诊断年月,'04') END AS yes
    FROM  tabl) t
    WHERE t.yes IS NOT NULL;