Sql 如何在透视查询中使用union all

Sql 如何在透视查询中使用union all,sql,union-all,Sql,Union All,我正在使用上面的查询构建一个图表。现在,我可以将站点作为我的x系列。我需要把它放在第一排。我曾考虑使用UNION ALL,但不允许使用,因为我无法解析它 简而言之,我想添加另一行(在第一行)以获得如下结果: select risk, [ADAB] as ADAB, [Bahrain] as Bahrain, [Kuwait] as Kuwait, [Masirah] as Masirah, [Qatar] as Qatar from (select risk, piv_site = risk,

我正在使用上面的查询构建一个图表。现在,我可以将
站点
作为我的x系列。我需要把它放在第一排。我曾考虑使用
UNION ALL
,但不允许使用,因为我无法解析它

简而言之,我想添加另一行(在第一行)以获得如下结果:

select risk, [ADAB] as ADAB, [Bahrain] as Bahrain, [Kuwait] as Kuwait, [Masirah] as Masirah, [Qatar] as Qatar
from (select risk, piv_site = risk, site
        from qcvqciffull
        where (1=1) AND Risk is not null) as ps
pivot (count(piv_site)
        for site in ([ADAB], [Bahrain], [Kuwait], [Masirah], [Qatar])) as pvt
+------+------+---------+--------+---------+-------+

|风险| ADAB |巴林|科威特|马西拉|卡塔尔|假设您使用的是MS SQL Server:

+------+------+---------+--------+---------+-------+
| Risk | ADAB | Bahrain | Kuwait | Masirah | Qatar | <-- Header
+------+------+---------+--------+---------+-------+
| Risk | ADAB | Bahrain | Kuwait | Masirah | Qatar | <-- Start of row
+------+------+---------+--------+---------+-------+
|   1  |   2  |   3     | 4      | 5       | 3     |
+------+------+---------+--------+---------+-------+
|   2  |   3  |   2     | 5      | 1       | 2     |
+------+------+---------+--------+---------+-------+

如果要在结果集的第一行中显示列标题文本,则必须将所有列强制转换为VARCHAR数据类型,这可能会在其他地方造成问题。。。大多数图表工具都支持将x轴(类别)数据放在一个单独的列中,因此您是否绝对确定需要在SQL查询中透视数据?你在用什么制图工具?是的。或者你知道有任何类似的查询结果相同吗?我想你不明白我的评论。不必将列标题作为第一行数据重复。您在图表中使用的应用程序是什么?报告服务?擅长?无论如何,这个问题应该在图表应用程序中解决,而不是在查询中。
SELECT 'Risk','ADAB','Bahrain','Kuwait','Masirah','Qatar'

UNION ALL

select CONVERT(VARCHAR,risk)
,CONVERT(VARCHAR,[ADAB]) as ADAB
,CONVERT(VARCHAR,[Bahrain]) as Bahrain
,CONVERT(VARCHAR,[Kuwait]) as Kuwait
,CONVERT(VARCHAR,[Masirah]) as Masirah
,CONVERT(VARCHAR,[Qatar]) as Qatar

from (select risk, piv_site = risk, site
        from qcvqciffull
        where (1=1) AND Risk is not null) as ps
pivot (count(piv_site)
        for site in ([ADAB], [Bahrain], [Kuwait], [Masirah], [Qatar])) as pvt