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

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

新聞中心

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

?

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

今天給大家介紹幾種方法來求解這樣的問題,我們先看下示例表:

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

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

方法一  ORDER BY CASE WHEN

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

*  Citys

City=
City=
City=
City=
City=

此方法針對比較簡單的查詢?nèi)菀讓崿F(xiàn)自定義排序,在比較復雜場景中使用起來有限制。

方法二 UNION ALL

使用UNION ALL的方法容易理解,但是代碼會寫的比較復雜,具體如下:

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

我們通過增加一列自定義的Num,給查詢出來的每一行記錄賦一個值,這個值是我們輸出的順序,再通過子查詢對這個自定義的Num進行排序即可。時常用在比較復雜的查詢語句中,且需要自定義排序的場景下。

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

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

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

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

這種方法相對于上面兩種方法只需要更新臨時表中的順序即可,可以適應各種不同的場景。?


分享文章:聊一聊SQL自定義排序
文章起源:http://m.5511xx.com/article/cdsidpg.html