sql排序,對欄位指定值排序順序

2022-02-23 23:01:55 字數 1297 閱讀 6914

我們知道在sql sever中排序主要兩種,順序,降序。

問題簡述如下:

字段值:1、4、8、6,公升序是1、4、6、8,降序是:8、6、4、1,怎麼讓他排成4、8、6、1。

語句1: selectid   from  table where id in(1,4,8,6) order by  charindex(','+convert(varchar(5),id)+',',',4,8,6,1,');

語句2: selectid  from  table  order by  charindex(','+convert(varchar(5),id)+',',',1,6,8,4,') desc;                    (大家看看這兩句的差異)

sql函式摘錄***************==

charindex ( expression1 , expression2 , [ start_location ] )

引數

expression1

乙個表示式,其中包含要尋找的字元的次序。expression1

資料型別分類的表示式。

expression2

乙個表示式,通常是乙個用於搜尋指定序列的列。expression2

start_location

expression2

expression1

expression2

返回型別

int注釋

expression1

expression2

資料型別(nvarchar 或 nchar)而另乙個不屬於,則將另乙個轉換為 unicode 資料型別。

expression1

expression2

expression1

expression2

expression2

expression1,則 charindex 返回 0

***************=end******************************=

charindex ( expression1 , expression2 , [ start_location ] )

簡單的說:charindex 函式就是用expression1在 [ start_location ]中匹配,並返回在[ start_location ]中的索引值!

好了,就到這裡吧

sql指定值排序

開發中遇到乙個需求 分頁查詢某實體類,將狀態為待審核的放在最前面,同時按照建立該實體的建立時間來降序.方案一 取出資料在service層進行重組,但這種方式無法保證將所有為待審核狀態的實體放在最前面,因為分頁查詢不是將所有符合條件的資料都查出來,它會根據你每頁需要顯示的條數來查詢出多少條資料來。所以...

實現指定順序排序

在工作中經常會遇到如下場景,客戶提出需求,我需要某乙個列表中的資料按照指定的順序排序,而之前並沒有告訴你要排序。場景如下 有資料表recorddata,包括三個字段,id description catalog,現客戶指定要以descripton排序,排序規則按照d1 d2 d3排序顯示。一種比較直...

Sql查詢按某字段值排序

1.sql查詢資料 select from emapiauthorizeinfo order bycase when d76c63ec d885 40b4 ad58 e950ebba74bf then 1when be1581ea d3d1 4342 a427 2027faee26db then 2...