从列到行

只记今朝笑 2009-09-23 12:14:27

诊疗年月 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
...全文
53 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
nianzhang747 2009-09-23
  • 打赏
  • 举报
回复
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;
ACMAIN_CHM 2009-09-23
  • 打赏
  • 举报
回复
估计你的原数据中不会出现 200902 Day_31=1 的情况,则对日期的有效性不做检查了。


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 where Day_27=1
union all
select concat(诊疗年月,'28') from table1 where Day_28=1
union all
select concat(诊疗年月,'29') from table1 where Day_29=1
union all
select concat(诊疗年月,'30') from table1 where Day_30=1
union all
select concat(诊疗年月,'31') from table1 where Day_31=1

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧