2014-10-06 21 views
0

我有一個CSV文件,我已經導入到SQL Server中的表中。我正在做一個charindex以獲得每個逗號的位置!我在這裏做了什麼洛奇錯誤?CharIndex查詢它帶回錯誤的值?

SELECT-- a.string_raw, 
    charindex(',',a.string_raw,1) string_raw_1, 
    charindex(',',a.string_raw,2) string_raw_2, 
    charindex(',',a.string_raw,3) string_raw_3, 
    charindex(',',a.string_raw,4) string_raw_4 
    FROM raw_data A 

樣品字符串:

,1.30pm,PW Cooper,7,11,,07/09/2014,tbc,, 

結果回來作爲

string_raw_1 = 1 Correct 
    string_raw_2 = 8 Correct 
    String_raw_3 = 8 wrong 
    String_raw_4 = 8 wrong 

如果有人可以給我答案,這將是王牌!我有一種感覺,這一個會讓我看起來很愚蠢

+1

什麼是你'string_raw'? – 2014-10-06 12:05:53

+3

第三個參數是起始位置不是出現 – jazzytomato 2014-10-06 12:06:28

+0

這裏是一個示例 – TuckRollworthy 2014-10-06 12:13:06

回答

0

我假設你正在期待像1,8,7,6這樣的值,因爲你正在增加startindex參數。如果你期望函數返回1,8,18,20,請參閱@Thomas Haratyk的評論。

CHARINDEX返回值從字符串的開頭計數,而不是從從startIndex位置:

    1 2 22 
1  8   8 0 34 
,1.30pm,PW Cooper,7,11,,07/09/2014,tbc, 
+0

非常感謝隊友 – TuckRollworthy 2014-10-15 08:46:36

+0

@TuckRollworthy不客氣。如果我的答案(或者其他)幫助你解決你的問題,請考慮接受它 - http://stackoverflow.com/help/someone-answers – 2014-10-16 14:03:03