SQL where in 語句順序問題

2021-08-28 22:36:25 字數 468 閱讀 9843

in只會去看記錄在不在裡面,不會去管in裡面的順序,所以說,換個想法吧,你在in裡面寫好順序也沒用。

所以只要求助於order了,格式為:

select * from tb where id in (3,4,1,5) order by charindex(',' + rtrim(id) + ',' , ',' + '3,4,1,5' + ',')

select * from product where id in(12490,12494,12486)   order by  charindex(','+convert(varchar(10),id)+',',',12490,12494,12486,') 

實現原理

把id轉成字串,然後在兩邊加上",",組合乙個字串,用逗號隔開每個id,然後查詢id的下標值(之所以兩邊加上","是因為查詢下標的時候類似id=123和id=1234會查到同乙個下標)

update 語句更新順序

create table tb 產品 varchar 2 數量 int,日期 varchar 4 單據號 varchar 4 insert into tb select a 10,9.1 001 union all select a 3,9.2 002 union all select a 4,9....

SQl語句執行順序

在程式設計的時候,每個語言的一行 都是有執行順序,比如從右往左或者從左往右,在大部分的時候是不影響,但有些時候,執行順序卻有非常大的影響。int i 0 if i 0 i 0 if i 0 i 0 第一種情況會執行,第二種情況不會執行,因為判斷是從右往左判斷,條件不成立馬上就結束,第二種情況先判斷i...

SQL語句執行順序

1 from 子句,組裝來自不同資料來源的資料 2 where 子句,基於指定的條件對記錄進行篩選 3 group by 子句,將資料劃分為多個分組 4 使用聚合函式進行計算 5 使用 h ing 子句篩選分組 6 計算所有的表示式 7 使用 order by 對結果集進行排序 select dis...