我正在寻找最优雅的解决方案来防止添加最后一个/最后一个分隔符';' 在最后一行之后。
例如结果应该是
'彼得,保罗,吉尔'
代替
'彼得,保罗,吉尔,'
DECLARE @p varchar(max) = '';
SELECT @P = @P + col2 +',' FROM tab1 WHERE coli = 1
RETURN @P
解决方案
RETURN LEFT(@P, LEN(@P) -1);
仅当@P 足够长时才有效,因此不是解决方案...
我该如何解决这个优雅可靠的问题?
我想很多人用这个
STUFF
函数解决了这个问题。我从这个链接中找到了一个例子并对其进行了改编。正如 Dan Guzman 在评论中指出的那样,指定 TYPE 和 value 方法可以避免在结果字符串中对特殊字符(如&符号)进行实体引用。
没有
stuff
函数,我们也可以试试这个isnull
技巧(重用 Scott 已经完成的代码):