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...