如何将多个字符串绑定到游标中的1个变量中?

时间:2019-02-14 13:53:18

标签: sql sql-server tsql

我想将一个变量的字符串绑定到另一个变量,但对每个游标重复此操作。就像这样:

DECLARE curA CURSOR FOR 
    SELECT A FROM TableA

OPEN curA   
FETCH NEXT FROM curA INTO @varA
WHILE @@FETCH_STATUS = 0
    BEGIN 
        ........            
        FETCH NEXT FROM curA INTO @varA
    END

CLOSE curA

现在,我希望光标中所有@varA的记录(@varA在字符串中)都连接成@varB,例如:@varB ='Acbd,efgh,xyz ...',我该怎么做?在此先感谢!

2 个答案:

答案 0 :(得分:1)

我将使用FOR XML PATH()子句代替cursorlooping

SELECT @varA = STUFF( (SELECT ', '+A
                       FROM tablea
                       FOR XML APTH('')
                      ), 1, 1, ''
                    );

答案 1 :(得分:0)

我认为可以通过以下代码行创建所需的内容:
SET @varB = @varA + ',' + @varB
然后在光标之后,从@varB中删除最后一个“,”。 我以为您正在使用SQL Server。