在SQL Server中使用Union的BY by子句

达瓦尔站

我想从数据库中将第一个选项的参与方名称列表设为“全部”。但我不会在数据库中插入“全部”,只需要检索时间即可。所以,我写了这个查询。

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

但是,我希望第一个选项为“全部”,然后按已排序的顺序列出各方。我怎样才能做到这一点?

Himanshu Jansari

您需要使用带有CASEinORDER 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

输出:

派对 姓名
0 全部
2个 AAKASH&CO。
3 SHAH&CO。
1个 SHIV电子

看到这个SQLFiddle

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章