将行连接成单个文本字符串

时间:2014-10-09 13:31:31

标签: sql sql-server

我见过类似的问题,但觉得这不是一个重复的问题。我想将行连接成带有连接的单个字符串。我对如何继续感到困惑。语法如下 我收到一条错误“数据库中已经有一个名为'#TEMPTABLE'的对象。”另外我不确定我的sytax到第二选择语句是否正确,有帮助吗?

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

3 个答案:

答案 0 :(得分:0)

错误消息There is already an object named '#TEMPTABLE' in the database.表示您在之前的运行中创建了一个具有此名称的临时表。要解决此问题,您需要DROP此表或使用其他名称。

要删除,请在查询之前使用以下代码:

IF OBJECT_ID('tempdb..#TEMPTABLE') IS NOT NULL 
   DROP TABLE #TEMPTABLE

答案 1 :(得分:0)

在我的情况下有效的是IF OBJECT_ID('tempdb。#TEMPTABLE')IS NOT NULL DROP TABLE #Results GO

谢谢大家!

答案 2 :(得分:0)

您可以使用未记录的字符串连接功能。


  Route::bind('user', function($user) {
      return new \App\User();
  });

就这么简单。关于订单保证,请阅读this文章。