日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
聊一聊SQL自定義排序

?

專(zhuān)注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)江城免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了1000多家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

今天給大家介紹幾種方法來(lái)求解這樣的問(wèn)題,我們先看下示例表:

這張表的數(shù)據(jù)是隨機(jī)錄進(jìn)去的,下面我們希望按照我們指定的順序輸出為如下內(nèi)容:

注意:這里既沒(méi)有按照人口的多少排序,也沒(méi)有按照GDP的多少排序,更加沒(méi)有按照城市的拼音首字母排序,完全是按照我們自己的意愿進(jìn)行排序。

方法一  ORDER BY CASE WHEN

通過(guò)在ORDER BY的時(shí)候,我們對(duì)想要的輸出順序使用CASE WHEN,將文本轉(zhuǎn)化為可排序的數(shù)字來(lái)進(jìn)行間接排序,具體代碼如下:

*  Citys

City=
City=
City=
City=
City=

此方法針對(duì)比較簡(jiǎn)單的查詢(xún)?nèi)菀讓?shí)現(xiàn)自定義排序,在比較復(fù)雜場(chǎng)景中使用起來(lái)有限制。

方法二 UNION ALL

使用UNION ALL的方法容易理解,但是代碼會(huì)寫(xiě)的比較復(fù)雜,具體如下:

a.City,a.Population,a.GDP 
(
,* Citys City=
ALL
,* Citys City=
ALL
,* Citys City=
ALL
,* Citys City=
ALL
,* Citys City=
) a
a.Num

我們通過(guò)增加一列自定義的Num,給查詢(xún)出來(lái)的每一行記錄賦一個(gè)值,這個(gè)值是我們輸出的順序,再通過(guò)子查詢(xún)對(duì)這個(gè)自定義的Num進(jìn)行排序即可。時(shí)常用在比較復(fù)雜的查詢(xún)語(yǔ)句中,且需要自定義排序的場(chǎng)景下。

方法三 創(chuàng)建臨時(shí)表

相比上面兩種方法,創(chuàng)建臨時(shí)表的方法可以極大的減少代碼量。我們可以先創(chuàng)建一個(gè)按照我們希望輸出的順序的臨時(shí)表Temp,具體如下:

當(dāng)我們需要自定義排序輸出時(shí),可以直接關(guān)聯(lián)該臨時(shí)表,具體代碼如下:

a.*  Citys a
Temp b a.City=b.City
b.Num

這種方法相對(duì)于上面兩種方法只需要更新臨時(shí)表中的順序即可,可以適應(yīng)各種不同的場(chǎng)景。?


標(biāo)題名稱(chēng):聊一聊SQL自定義排序
文章URL:http://www.5511xx.com/article/cdsidpg.html