You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将SQL tbl_Shift表中的OffDay列转换为行形式展示?

解决方法:将多列转为单列多行的节假日列表

嘿,我明白你的需求了——你想要把OffDay1和生效的OffDay2拆成单列多行的形式展示,而不是放在同一行里。之前的查询用ISNULL是在同一行内做值的替换,自然达不到多行的效果,咱们换个思路用UNION ALL来实现:

正确的SQL查询语句

SELECT OffDay1 AS Holidays
FROM [HRM].[tbl_Shift]
UNION ALL
SELECT OffDay2 AS Holidays
FROM [HRM].[tbl_Shift]
WHERE IsAlternateOffDay2 = 1 -- Bit类型中True对应数值1,False对应0

为什么这个方法有效?

  • UNION ALL会把两个SELECT语句的结果合并成一个结果集,并且保留所有行(如果需要自动去重可以换成UNION)
  • 第一个SELECT负责取出所有记录的OffDay1
  • 第二个SELECT只取出那些IsAlternateOffDay2为True(也就是数值1)的OffDay2,确保只有生效的休息日才会被展示

执行这个查询后,你就能得到预期的结果:

Holidays
----------
Sunday
Saturday

如果你的表中有多条记录,这个方法也能正确处理每条记录对应的休息日,把它们都拆成单独的行。

内容的提问来源于stack exchange,提问作者Doonie Darkoo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 10:04:14