我有一个CSV文件,我已导入SQL Server中的表。我正在做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
如果有人能给我答案那就是王牌!我觉得这个会让我看起来很傻。
答案 0 :(得分: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,