第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

SQL如何使空值升序排序時(shí)最后

SQL如何使空值升序排序時(shí)最后

LEATH 2019-11-22 15:15:36
我有一個(gè)帶日期時(shí)間字段的SQL表。有問題的字段可以為空。我有一個(gè)查詢,我希望結(jié)果按datetime字段升序排序,但是我希望datetime字段在列表的末尾而不是開頭的行為null。有沒有簡單的方法可以做到這一點(diǎn)?
查看完整描述

3 回答

?
呼如林

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超3個(gè)贊

select MyDate

from MyTable

order by case when MyDate is null then 1 else 0 end, MyDate


查看完整回答
反對 回復(fù) 2019-11-22
?
Qyouu

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超11個(gè)贊

(“位”晚了,但這一點(diǎn)都沒有提到)


您未指定DBMS。


您可以在標(biāo)準(zhǔn)SQL(以及大多數(shù)現(xiàn)代DBMS(如Oracle,PostgreSQL,DB2,F(xiàn)irebird,Apache Derby,HSQLDB和H2)中)指定NULLS LAST或NULLS FIRST:


用于NULLS LAST將它們排序到末尾:


select *

from some_table

order by some_column DESC NULLS LAST


查看完整回答
反對 回復(fù) 2019-11-22
?
繁花不似錦

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超4個(gè)贊

如果您的引擎允許ORDER BY x IS NULL, x或ORDER BY x NULLS LAST使用。但是,如果不是這樣,這些方法可能會(huì)有所幫助:


如果按數(shù)字類型排序,則可以執(zhí)行以下操作:(從另一個(gè)答案借用架構(gòu)。)


SELECT *          

FROM Employees

ORDER BY ISNULL(DepartmentId*0,1), DepartmentId;

結(jié)果顯示按DepartmentId排序,最后為null


任何非空數(shù)都將變?yōu)?,并且空值將變?yōu)?,這將最后對空值進(jìn)行排序。


您還可以對字符串執(zhí)行此操作:


SELECT *

FROM Employees

ORDER BY ISNULL(LEFT(LastName,0),'a'), LastName

結(jié)果顯示按LastName排序,其中null為last


因?yàn)?#39;a'> ''。


這甚至可以通過強(qiáng)制為可為null的int并將上述方法用于int來處理日期:


SELECT *

FROM Employees

ORDER BY ISNULL(CONVERT(INT, HireDate)*0, 1), HireDate

(假設(shè)該模式具有HireDate。)


這些方法避免了必須提出或管理每種類型的“最大值”值或在數(shù)據(jù)類型(和最大值)發(fā)生更改時(shí)修復(fù)查詢的問題(這是其他ISNULL解決方案所遇到的問題)。另外,它們比CASE短得多。


查看完整回答
反對 回復(fù) 2019-11-22
  • 3 回答
  • 0 關(guān)注
  • 1552 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號