从每一行创建一个长字符串

时间:2012-07-10 17:05:00

标签: sql string tsql stored-procedures varchar

我正在尝试从评论中创建一个长字符串,我创建了这个sp

ALTER FUNCTION ugurcode.comment_summary
    (
    @opinionid int
    )
RETURNS nvarchar(max)
AS
    BEGIN
    declare @cs nvarchar(max);
    select @cs+=comment+'\n' from fev_comment where opinionid=@opinionid
    RETURN @cs/* value */
    END

这会返回null,我还能怎样实现呢?

1 个答案:

答案 0 :(得分:3)

替换

declare @cs nvarchar(max);

declare @cs nvarchar(max) = '';

连接NULL会返回NULL

BTW:微软说“The correct behavior for an aggregate concatenation query is undefined.”,这种做法可能会破裂。您可能希望改为XML PATH(请参阅Concatenating Row Values in Transact-SQL)。