在sql server中拆分字符串后获取数组长度

Sho*_*hel 1 sql sql-server sql-server-2012

我希望能够在 SQL Server 中拆分字符串。我有一个示例字符串

1012,1012,1012,1012,1012,1012,1012,1012
Run Code Online (Sandbox Code Playgroud)

拆分此字符串后,这里需要长度。

Expected output: 8
Run Code Online (Sandbox Code Playgroud)

Zoh*_*led 9

如果您只需要分隔字符串中的项目数,则根本不需要拆分它 - 以下是操作方法:
从原始字符串的长度中删除所有分隔符后减去字符串的长度. 这为您提供了字符串中分隔符的数量。然后你所要做的就是添加一个,因为你还有一个项目然后是分隔符:

DECLARE @String varchar(50) = '1012,1012,1012,1012,1012,1012,1012,1012'

SELECT LEN(@String) - LEN(REPLACE(@String, ',', '')) + 1
Run Code Online (Sandbox Code Playgroud)


Ull*_*las 5

我认为,要查找字符串中的总项目,您可能不需要拆分字符串。只需要找出 出现的次数即可,

询问

declare @string varchar(100)
set @string = '1012,1012,1012,1012,1012,1012,1012,1012'

select len(@string ) - len(replace(@string ,',', '')) + 1;
Run Code Online (Sandbox Code Playgroud)

Demo

  • 有时你会赢得比赛,有时却不会:-) (2认同)