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

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Ryan 的頭像
    Ryan

    Ryan的blog

    Ryan 發表在 痞客邦 留言(0) 人氣()