close
最近工作遇到,需要依照資料(excel)提供的序號 ,順序為 2、3、1、4
對應資料庫中,某一個TableA的資料,
之後需要將對應好的資料筆數,依照excel的順序,依序 insert 到另一個Table
但在查詢 TableA時發現一個小問題...
當我將excel資料拿來跟TableA做對應
Select * From TableA Where ID In ( '2' , '3' , '1' , '4' )
但...依TableA的ID而言,資料是從1~4順序加入到這個資料表,
所以就算沒有下Order By 的指令
查詢資料出來會呈現如下:
ID NAME
-------------------
1 AA
2 BB
3 CC
4 DD
而不是如SQL指令 : '2' , '3' , '1' , '4' 的順序
所以必須要倚賴SQL 提供的 CharIndex函數
語法
CHARINDEX ( expression1 ,expression2 [ , start_location ] )
Sql敘述改為
Select * From TableA Where ID In ( '2' , '3' , '1' , '4' ) Order By CharIndex( ID , ' 2 , 3 , 1 , 4 ' )
查詢資料呈現就會如我們SQL下的順序來呈現 :
ID NAME
---------------------'
2 BB
3 CC
1 AA
4 DD
參考:
http://msdn.microsoft.com/zh-tw/library/ms186323.aspx
全站熱搜
留言列表