【发布时间】:2021-12-21 01:24:59
【问题描述】:
我有像 TB1 这样的桌子:
Emp_name Dept_name salary
Girish BB 20000
Bhanu AA 10000
Mahesh CC 10000
Seema YY 30000
我需要的输出是:
Emp_name Dept_name salary
Mahesh CC 10000
Bhanu AA 10000
Girish BB 20000
Seema YY 30000
这里我所做的是优先考虑'Mahesh',其余所有员工都按升序排序。
我试过这个查询:
SELECT *
FROM Employee
ORDER BY CASE
WHEN Emp_name LIKE '%Mahesh%' THEN 1
WHEN Emp_name LIKE '%' THEN 2
ELSE 3
end;
感谢您的宝贵时间。
【问题讨论】:
-
你的问题是什么?
-
这个查询首先对 Mahesh 进行排序,然后是所有其他的,然后是 null。没有字母顺序发生,因为您没有告诉 DBMS 这样做。如果要按字母顺序对其他名称进行排序,请将其添加到
ORDER BY子句:ORDER BY CASE ... END, emp_name。
标签: sql sql-server tsql sql-query-store