我想要数据库中第一个选项为“全部”的各方名称列表。但我不会将“全部”插入数据库,只需要检索时间。所以,我写了这个查询。
Select 0 PartyId, 'All' Name
Union
select PartyId, Name
from PartyMst
这是我的结果
0 All
1 SHIV ELECTRONICS
2 AAKASH & CO.
3 SHAH & CO.
当我使用按名称排序
时,它会显示以下结果。
2 AAKASH & CO.
0 All
3 SHAH & CO.
1 SHIV ELECTRONICS
但是,我希望第一个选项为“全部”,然后按排序顺序列出各方。 我怎样才能做到这一点?
最佳答案
您需要使用 CASE
的子查询在ORDER BY
像这样的子句:
SELECT * FROM
(
Select 0 PartyId, 'All' Name
Union
select PartyId, Name
from PartyMst
) tbl
ORDER BY CASE WHEN PartyId = 0 THEN 0 ELSE 1 END
,Name
输出:
关于sql - Sql Server 中带有 Union 的 Order by 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18225354/