我們知道在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...