SQL Server:任何等效的strpos()?

Kip*_*Kip 18 sql sql-server syntax strpos

我正在处理一个恼人的数据库,其中一个字段包含两个单独字段应该存储的内容.所以列存储的内容类似于"第一个字符串〜@〜第二个字符串",其中"〜@〜"是分隔符.(再次,我没有设计这个,我只是想解决它.)

我想要一个查询将其移动到两列,看起来像这样:

UPDATE UserAttributes
SET str1 = SUBSTRING(Data, 1, STRPOS(Data, '~@~')),
    str2 = SUBSTRING(Data, STRPOS(Data, '~@~')+3, LEN(Data)-(STRPOS(Data, '~@~')+3))
Run Code Online (Sandbox Code Playgroud)

但是我找不到任何等同于strpos的存在.

Elz*_*ugi 35

用户charindex:

Select CHARINDEX ('S','MICROSOFT SQL SERVER 2000')
Result: 6
Run Code Online (Sandbox Code Playgroud)

链接


Raj*_*ore 11

PatIndex函数应该为您提供模式的位置作为字符串的一部分.

PATINDEX ( '%pattern%' , expression )
Run Code Online (Sandbox Code Playgroud)

http://msdn.microsoft.com/en-us/library/ms188395.aspx