我有一个非常简单的要求.
SELECT NULL as ProjectId, 'All' as ProjectName
UNION
(
SELECT Project.ProjectId, Project.ProjectName
FROM Project Order by 2
)
Run Code Online (Sandbox Code Playgroud)
原始订单顺序:
ProjectId ProjectName
24 Beta
56 Alpha
57 Gamma
120 Aap
Run Code Online (Sandbox Code Playgroud)
预期结果集:
ProjectId ProjectName
______________________________
NULL All
120 Aap
56 Alpha
24 Beta
57 Gamma
Run Code Online (Sandbox Code Playgroud)
我需要的:我想在查询的有序结果集之上添加一行
问题:
声明一个Table变量按顺序插入所有条目,然后在该表上执行union,即
Select NULL as ProjectId, 'All' as ProjectName...
UNION
select * from @myTable
Run Code Online (Sandbox Code Playgroud)
再次摧毁秩序
请帮帮我
您可以订购UNION的结果,但是您需要提供额外的列来标识数据的来源 - 这里是SortOrder:
SELECT NULL as ProjectId, 'All' as ProjectName, 1 SortOrder
UNION ALL
SELECT Project.ProjectId, Project.ProjectName, 2 SortOrder
FROM Project
order by SortOrder, ProjectName
Run Code Online (Sandbox Code Playgroud)
注意我用UNION ALL替换了UNION,因为您不需要DISTINCT结果集.