Sql 非空值之间的升序和降序
使用此查询:Sql 非空值之间的升序和降序,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,使用此查询: WITH CTE AS ( SELECT concat(e.FirstName, ' ', e.LastName) as Employee_Name, g.GrantName, g.Amount, case when g.Amount IS NULL THEN 0 ELSE 1 END AS IS_NULL_Amount fr
WITH CTE
AS
(
SELECT
concat(e.FirstName, ' ', e.LastName) as Employee_Name,
g.GrantName,
g.Amount,
case
when g.Amount IS NULL THEN 0
ELSE 1
END AS IS_NULL_Amount
from Employee e
LEFT OUTER join [Grant] g
ON g.EmpID = e.EmpID
)
SELECT
CTE.Employee_Name,
CTE.GrantName,
CTE.Amount
from CTE
ORDER BY CTE.IS_NULL_Amount desc
我得到以下结果:
Employee_Name GrantName Amount
---------------------------------------------------------
Barry Brown K-Land fund trust 15750.00
Lee Osako TALTA_Kishan International 18100.00
David Kennson BIG 6's Foundation% 21000.00
Eric Bender Just Mom 9900.00
David Lonning 92 Purr_Scents %% team 4750.00
David Lonning Robert@BigStarBank.com 18100.00
David Lonning www.@-Last-U-Can-Help.com 25000.00
David Lonning Big Giver Tom 95900.00
James Newton Mega Mercy 55000.00
Terry O'Haire Ben@MoreTechnology.com 41000.00
Sally Smith Thank you @.com 21500.00
Barbara O'Neil NULL NULL
Phil Wilconkinski NULL NULL
Janis Smith NULL NULL
Alex Adams NULL NULL
John Marshbank NULL NULL
Lisa Kendall NULL NULL
(17 row(s) affected)
如何仅在not NULL值之间对ASC和DESC进行排序?排序结束为\u NULL\u金额和金额
ORDER BY CTE.IS_NULL_Amount desc,Amount asc
请尝试使用以下ORDERBY子句:
order by cte.Is_Null_Amount desc, EmployeeName
或
请澄清“仅在非空值之间对ASC和DESC进行排序”的含义。您想按哪一列排序,金额?最后保留空值?
order by cte.Is_Null_Amount desc, Amount desc