我可以避免使用 union all 语句吗?
Can I avoid using union all statements?
我从系统中提取了一份文件,该文件以下列格式显示 excel 中的数据:
我使用冗长的 union 语句得到以下结果:
我想知道是否有比一大堆 union all 语句更简洁、更易于阅读的更好方法?
如果您正在使用 SQL Server
,那么 交叉应用 比 UNION ALL
声明
更好
select a.* from table t
cross apply (
values (PersonId, 'Q1', Q1)
,(PersonId, 'Q2', Q2)
,(PersonId, 'Q3', Q3)
,(PersonId, 'Q4', Q4)
...
...
,(PersonId, 'Q20', Q20)
)a(PersonId, Q, Outcome)
order by a.Q, a.PersonId
我从系统中提取了一份文件,该文件以下列格式显示 excel 中的数据:
我使用冗长的 union 语句得到以下结果:
我想知道是否有比一大堆 union all 语句更简洁、更易于阅读的更好方法?
如果您正在使用 SQL Server
,那么 交叉应用 比 UNION ALL
声明
select a.* from table t
cross apply (
values (PersonId, 'Q1', Q1)
,(PersonId, 'Q2', Q2)
,(PersonId, 'Q3', Q3)
,(PersonId, 'Q4', Q4)
...
...
,(PersonId, 'Q20', Q20)
)a(PersonId, Q, Outcome)
order by a.Q, a.PersonId