当前位置:  开发笔记 > 编程语言 > 正文

T-SQL While循环和串联

如何解决《T-SQLWhile循环和串联》经验,为你挑选了1个好方法。

我有一个SQL查询,应该提取一条记录并将其连接成一个字符串,然后输出该字符串。查询的重要部分如下。

DECLARE @counter int;
SET @counter = 1;

DECLARE @tempID varchar(50);
SET @tempID = '';

DECLARE @tempCat varchar(255);
SET @tempCat = '';

DECLARE @tempCatString varchar(5000);
SET @tempCatString = '';

WHILE @counter <= @tempCount
BEGIN

    SET @tempID = (
    SELECT [Val]
    FROM #vals
    WHERE [ID] = @counter);

    SET @tempCat = (SELECT [Description] FROM [Categories] WHERE [ID] = @tempID);
    print @tempCat;

    SET @tempCatString = @tempCatString + '
' + @tempCat; SET @counter = @counter + 1; END

脚本运行时,@tempCatString输出为null,而@tempCat始终正确输出。是否有某些原因导致串联在While循环内不起作用?这似乎是错误的,因为增量@counter可以完美地工作。那我还有什么想念的吗?



1> HLGEM..:

看起来它应该可以工作,但是出于某种原因,似乎认为@tempCatString为null,这就是为什么您总是得到null值的原因,因为null串联到其他任何值仍然为null。建议您尝试将COALESCE()每个变量设置为“”(如果它们为空)。

推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有