我有像 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;
感謝您的時間。
uj5u.com熱心網友回復:
只需使用正確的ORDER BY子句:
樣本資料:
SELECT *
INTO Employee
FROM (VALUES
('Girish', 'BB', 20000),
('Bhanu', 'AA', 10000),
('Mahesh', 'CC', 10000),
('Seema', 'YY', 30000)
) Employee (Emp_name, Dept_name, Salary)
陳述:
SELECT *
FROM Employee
ORDER BY
CASE
WHEN Emp_name LIKE '%Mahesh%' THEN 1
ELSE 2
END,
Emp_name ASC
uj5u.com熱心網友回復:
我的解決方案:
SELECT Emp_name, Dept_name, Salary FROM (
select T.*,
CASE
WHEN Emp_name = 'Mahesh' THEN
0
ELSE
1
END SORT1
from (VALUES
('Girish', 'BB', 20000),
('Bhanu', 'AA', 10000),
('Mahesh', 'CC', 10000),
('Seema', 'YY', 30000)
) T (Emp_name, Dept_name, Salary)) TT
ORDER BY TT.SORT1,TT.Emp_name
uj5u.com熱心網友回復:
SELECT *
FROM Employee
ORDER BY
CASE
WHEN Emp_name Like '%Mahesh%' THEN 1
ELSE 2
END,
Dept_name ASC, salary ASC
uj5u.com熱心網友回復:
在 TB1 表上運行此查詢
CREATE TABLE TB2
SELECT * FROM TB1 ORDER BY salary ASC;
在創建 TB2 的地方運行此查詢
SELECT * FROM TB2 ORDER BY Dept_name='cc' DESC;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/353037.html
標籤:sql sql-server 查询语句 sql-query-store
上一篇:沒有鍵連接的查詢查找表
下一篇:SQLServer-條件自聯接
