Sql 将行连接到单个文本字符串中
我见过类似的问题,但我觉得这不是一个重复的问题。我想用连接将行连接成单个字符串。我对如何进行感到困惑。下面的语法 我收到一个错误,数据库中已经有一个名为“诱惑”的对象。我也不确定我的sytax到第二个select语句是否正确,帮助Sql 将行连接到单个文本字符串中,sql,sql-server,Sql,Sql Server,我见过类似的问题,但我觉得这不是一个重复的问题。我想用连接将行连接成单个字符串。我对如何进行感到困惑。下面的语法 我收到一个错误,数据库中已经有一个名为“诱惑”的对象。我也不确定我的sytax到第二个select语句是否正确,帮助 SELECT DISTINCT DisplayName, addrSt, addrCntyName, RIGHT('00' + CONVERT(varchar, addrStFips), 2) + RIGHT('000' + convert(varchar, a
SELECT DISTINCT DisplayName, addrSt, addrCntyName,
RIGHT('00' + CONVERT(varchar, addrStFips), 2) + RIGHT('000' + convert(varchar, addrCntyFips), 3) AS addrFips
INTO #TEMPTABLE
FROM PPP
INNER JOIN poa ON PPP.OAJ = poa.OAJ
INNER JOIN dcPfp ON PfpPayor.KEYF = dbo.dcPfp.KEYJ
INNER JOIN ProvOff ON ProvOffAfl.OJK = ProvOff.OJK
SELECT DISTINCT
addrFips,
STUFF
(
(
SELECT ',' + DisplayName
FROM #TEMPTABLE M
WHERE M.addrFips = B.addrFips
ORDER BY DisplayName
FOR XML PATH('')
),1,1,''
) AS DISPLAYNAMES
FROM #TEMPTABLE B
DROP TABLE #TEMPTABLE
错误消息显示,数据库中已存在名为“诱惑”的对象。表示您在上一次运行中已使用此名称创建了一个临时表。要解决此问题,需要删除此表或使用其他名称
要删除,请在查询之前使用以下代码:
IF OBJECT_ID('tempdb..#TEMPTABLE') IS NOT NULL
DROP TABLE #TEMPTABLE
在我的情况下,如果OBJECT_ID'tempdb.tentable'不是NULL,那么就可以删除表结果 去
谢谢大家! 您可以使用未记录的字符串连接功能
DECLARE @big_string varchar(max) = '';
SELECT @big_string += x.s + ','
FROM (VALUES ('string1'), ('string2'), ('string3')) AS x(s);
SELECT @big_string;
-- OUTPUT:
-- string1,string2,string3,
就这么简单。至于订单保证,请阅读文章。好吧,您的错误意味着您在再次运行查询之前没有放弃诱惑。首先执行删除表,然后从开始添加如果对象_ID'tempdb..tentable'不为空,则在SQL之前删除表结果并重试:-根据bummi的建议扩展使用批处理分隔符在执行他建议的语句后继续。谢谢bummi,它与M.Ali建议的GO声明一起工作。如果您愿意,您可以回答自己的问题。发布添加在评论中的解决方案。按照以下建议将其标记为社区wiki:。