【问题标题】:Merging two select queries and displaying first queries record in top合并两个选择查询并在顶部显示第一个查询记录
【发布时间】:2013-06-14 20:04:42
【问题描述】:

我有一个查询结果,其中lastName 列中的数据如下

Select * from department where departmentid in (1,2)

DepartmentID  LastName 
------------  --------
1,2           A
2             D
1             C
1             B
1,2           Y

现在我想要按姓氏升序排列的结果,但是 每当上面的查询返回包含姓 Y 的结果时。它应该排在最前面。 像下面的结果集

LastName 
--------
Y
A
B
C
D

如何通过sql查询来实现?

【问题讨论】:

    标签: mysql sql sql-server-2005 plsql plsqldeveloper


    【解决方案1】:

    您可以使用条件order by

    order by (case when LastName = 'Y' then 1 else 0 end) desc,
             LastName
    

    【讨论】:

    • 实际上我希望结果始终按升序排列,但如果结果集包含“Y”,则结果集将在顶部包含 Y,其他记录按升序排列。
    • @irshad 。 . .这就是order by 子句的作用。
    • :- 抱歉,我没有在 Sql 中尝试过,没关系。它对我有用.. 谢谢你的帮助....
    猜你喜欢
    • 2016-07-26
    • 2012-07-18
    • 1970-01-01
    • 1970-01-01
    • 2013-02-17
    • 1970-01-01
    • 2013-11-23
    相关资源
    最近更新 更多