日期:2014-05-16  浏览次数:22181 次

年月+日(日在列上) 化列为行
診療年月   |Day_1|Day_2|Day_3|Day_4|Day_5|Day_6|Day_7|Day_8|Day_9|Day_10   ...   |   Day_31   |
      200904 |     0 |     0 |     0 |     0 |     1 |     0 |     0 |     1 |     0 |     0    ...     |     0      |
      200905 |     0 |     1 |     0 |     0 |     0 |     0 |     0 |     0 |     0 |     0    ...     |     0      |
      200906 |     0 |     0 |     0 |     0 |     0 |     0 |     0 |     0 |     0 |     0    ...     |     0      |
      200907 |     0 |     0 |     0 |     0 |     0 |     0 |     0 |     0 |     0 |     1    ...     |     0      |
      200908 |     0 |     0 |     0 |     0 |     0 |     0 |     0 |     0 |     0 |     0    ...     |     1      |
      ...         |...       |...       |...       |...       |...       |...       |...       |...       |...       |...                       |...       |

化列为行 結果以下

  診療年月日
  20090405
  20090408
  20090502
  20090710
  20090831

------解决方案--------------------
估计你的原数据中不会出现 200902 Day_31=1 的情况,则对日期的有效性不做检查了。

SQL code

select concat(诊疗年月,'01') from table1 where Day_1=1 
union all
select concat(诊疗年月,'02') from table1 where Day_2=1 
union all
select concat(诊疗年月,'03') from table1 where Day_3=1 
union all
select concat(诊疗年月,'04') from table1 where Day_4=1 
union all
select concat(诊疗年月,'05') from table1 where Day_5=1 
union all
select concat(诊疗年月,'06') from table1 where Day_6=1 
union all
select concat(诊疗年月,'07') from table1 where Day_7=1 
union all
select concat(诊疗年月,'08') from table1 where Day_8=1 
union all
select concat(诊疗年月,'09') from table1 where Day_9=1 
union all
select concat(诊疗年月,'10') from table1 where Day_10=1 
union all
select concat(诊疗年月,'11') from table1 where Day_11=1 
union all
select concat(诊疗年月,'12') from table1 where Day_12=1 
union all
select concat(诊疗年月,'13') from table1 where Day_13=1 
union all
select concat(诊疗年月,'14') from table1 where Day_14=1 
union all
select concat(诊疗年月,'15') from table1 where Day_15=1 
union all
select concat(诊疗年月,'16') from table1 where Day_16=1 
union all
select concat(诊疗年月,'17') from table1 where Day_17=1 
union all
select concat(诊疗年月,'18') from table1 where Day_18=1 
union all
select concat(诊疗年月,'19') from table1 where Day_19=1 
union all
select concat(诊疗年月,'20') from table1 where Day_20=1 
union all
select concat(诊疗年月,'21') from table1 where Day_21=1 
union all
select concat(诊疗年月,'22') from table1 where Day_22=1 
union all
select concat(诊疗年月,'23') from table1 where Day_23=1 
union all
select concat(诊疗年月,'24') from table1 where Day_24=1 
union all
select concat(诊疗年月,'25') from table1 where Day_25=1 
union all
select concat(诊疗年月,'26') from table1 where Day_26=1 
union all
select concat(诊疗年月,'27') from table1 w