我可以避免使用 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