Tsql 即使存在子字符串,CHARINDEX也返回0
我正在尝试提取列之一的子字符串Tsql 即使存在子字符串,CHARINDEX也返回0,tsql,Tsql,我正在尝试提取列之一的子字符串 SELECT PT.col1 AS MyColumn ,( CASE WHEN CHARINDEX(PT.col1, '$') > 0 THEN SUBSTRING(PT.col1, CHARINDEX(PT.col1, '$') + 1, LEN(PT.col1) - CHARINDEX(PT.col1, '$') - 1) ELSE ''
SELECT PT.col1 AS MyColumn
,(
CASE WHEN CHARINDEX(PT.col1, '$') > 0
THEN SUBSTRING(PT.col1, CHARINDEX(PT.col1, '$') + 1,
LEN(PT.col1) - CHARINDEX(PT.col1, '$') - 1)
ELSE ''
END
)
,T1.col2
,PT.col3
,T1.col4
,T1.col5
//...
我得到的是所有行的空字符串。我试图只显示$”字符的索引,但得到的结果是
0`
PT.col1
的值看起来像法语(加拿大)$fr CA
,葡萄牙语(巴西)$PT BR
我遗漏了什么吗?您必须切换参数:
SELECT CHARINDEX('a$bc', '$') AS Wrong, CHARINDEX('$', 'a$bc') AS Ok
/*
Wrong Ok
----------- -----------
0 2
*/
您必须切换参数:
SELECT CHARINDEX('a$bc', '$') AS Wrong, CHARINDEX('$', 'a$bc') AS Ok
/*
Wrong Ok
----------- -----------
0 2
*/
您必须切换参数:
SELECT CHARINDEX('a$bc', '$') AS Wrong, CHARINDEX('$', 'a$bc') AS Ok
/*
Wrong Ok
----------- -----------
0 2
*/
您必须切换参数:
SELECT CHARINDEX('a$bc', '$') AS Wrong, CHARINDEX('$', 'a$bc') AS Ok
/*
Wrong Ok
----------- -----------
0 2
*/