【发布时间】:2018-02-02 23:21:50
【问题描述】:
我写了一个查询,我想在查询中显示员工的顺序。查询如下
select * from employeemaster where employeename in
('Sachin','Gaurav','Vinay','Shiv','Sandeep','Vaibhav','Prashant')
我想查看查询结果首先显示 Sachin,然后再显示其他人,在这种情况下,员工的 ID 不是按顺序排列的,例如。 Sachin 的 ID 可以是 4,Vinay 的 ID 可以是 1。但是因为我已经将 Sachin 写在首位,所以我希望看到 Sachin 在结果中首先开始。
【问题讨论】:
-
这里接受的答案应该能让你达到目标CASE WHEN statement for ORDER BY clause
-
对结果集排序只有一个,即使用order by子句。上面的查询中没有任何内容可以提供此订单。
-
我不认为建议的副本是一回事。这里的 OP 希望结果的顺序与 IN 子句的值相同。我怀疑重点是接收姓名列表并以相同的顺序返回它们。副本中接受的答案会起作用,但不像 OP 在此处搜索的那样是动态的。
-
可能是@SeanLange,但是,如果是这种情况,我们将需要更多细节。最重要的是,如果它是动态的,那么该列表是如何进入查询的?这样我们就可以计算出如何动态地对其进行排序。
-
@Larnu 我同意我们需要更多细节。但是当细节如此稀疏时,我认为不应该将其标记为重复。
标签: sql-server