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

Ich habe diese Zeichenfolge und ich muss die Anzahl der verfügbaren Guid zählen, die drei ist.So erhalten Sie die Anzahl der verfügbaren GUID von einem Komma getrennte Zeichenfolge von GUID

Wie kann ich es in einer Integer-Variable bekommen?

So ähnlich?

select @i = count(@stringOfGuids) 

aber es gibt 1 zurück, ich brauche drei als verfügbar guids sind 3.

+0

ein Weg ist, die Anzahl der "Zeichen in der Zeichenfolge zu zählen, dann teilen sie durch 2 – Cato

Antwort

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; 
+0

Thnx andrew, ein weiterer guter Weg, um es zu bekommen, Thnx viel – Rajesh

4

die Anzahl der Kommata Graf und 1.

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

Das Zählen from this answer ist hinzuzufügen. Ich denke, bekam ist

+0

das genial ist! Er könnte auf diese Weise die Zitate obwohl zählen wollen, cos er einen Doppelpunkt am Ende - oh yeah, sorry, add 1 – Cato

+0

ja, ausgezeichnet Marko, es funktionierte für mich ,, thnx viel ... gute anständige Lösung .. – Rajesh