如何从逗号分隔的guid字符串中获取可用guid的数量

时间:2016-07-27 08:41:16

标签: sql-server sql-server-2008 tsql sql-server-2005 sql-server-2012

context.set('altitude') = foo
...
var foo = context.get('altitude');

我有这个字符串,我需要计算三个可用guid的数量。

如何在Integer变量中获取它?

这样的东西?

Declare @i int;
declare @stringOfGuids nvarchar(max)='''70173C2D-0B8E-4043-BD14-665D5DCCF112'',''B0B7445C-DF50-4D49-BD4E-B74958FB0618''
,''70173C2D-0B8E-4043-BD14-665D5DCCF112''';

但它返回1,我需要三个,因为可用的guid是3。

2 个答案:

答案 0 :(得分:4)

计算逗号数量并加1。

SELECT Len(@stringOfGuids ) - Len(Replace( @stringOfGuids , ',', '')) + 1

点算是from this answer

答案 1 :(得分:1)

Declare @i int;

declare @stringOfGuids nvarchar(max)='''70173C2D-0B8E-4043-BD14-665D5DCCF112'',''B0B7445C-DF50-4D49-BD4E-B74958FB0618'' ,''70173C2D-0B8E-4043-BD14-665D5DCCF112''';

declare @cnt int = 0;
declare @pos int = 1;

while charindex('''', @stringOfGuids, @pos) > 0
    SELECT @pos =  charindex('''', @stringOfGuids, @pos) + 1, @CNT = @CNT + 1;



SELECT @CNT / 2;