Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将行连接到单个文本字符串中_Sql_Sql Server - Fatal编程技术网

Sql 将行连接到单个文本字符串中

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

我见过类似的问题,但我觉得这不是一个重复的问题。我想用连接将行连接成单个字符串。我对如何进行感到困惑。下面的语法 我收到一个错误,数据库中已经有一个名为“诱惑”的对象。我也不确定我的sytax到第二个select语句是否正确,帮助

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:。