我希望第一个选项的名单列表为数据库中的“全部”。但我不会将“全部”插入数据库,只需要检索时间。所以,我写了这个查询。
Select 0 PartyId, 'All' Name
Union
select PartyId, Name
from PartyMst
这是我的结果
0 All
1 SHIV ELECTRONICS
2 AAKASH & CO.
3 SHAH & CO.
当我使用order by Name
时,它会显示在结果下方。
2 AAKASH & CO.
0 All
3 SHAH & CO.
1 SHIV ELECTRONICS
但是,我希望第一个选项为“全部”,然后按排序顺序列出缔约方列表。 我怎么能这样做?
答案 0 :(得分:34)
您需要在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
输出:
| PARTYID | NAME |
------------------------------
| 0 | All |
| 2 | AAKASH & CO. |
| 3 | SHAH & CO. |
| 1 | SHIV ELECTRONICS |
答案 1 :(得分:2)
您可以按'顺序使用'以这种方式在工会中进行最高级的指导:
Select 0 PartyId, 'All' Name
Union
select * from (
select top (select count(*) from PartyMst) PartyId, Name
from PartyMst
order by Name
)
答案 2 :(得分:1)
由于你无论如何硬编码0,所以只需在All
之前添加一个空格Select 0 PartyId, ' All' Name
Union
select PartyId, Name
from PartyMst
ORDER BY Name
拉吉