2014-10-09 30 views
2

我看过类似的问题,但感觉这不是重复的问题。我想通过连接将行连接成单个字符串。我很困惑如何继续。语法低于 我收到一个错误“数据库中已有一个名为'#TEMPTABLE'的对象。”我也不确定我的第二个select语句的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 
+1

那么,你的错误意味着在再次运行查询之前,你还没有删除'#TEMPTABLE'。首先执行'DROP TABLE',然后从开始开始 – Lamak 2014-10-09 13:36:11

+3

添加'IF OBJECT_ID('tempdb ..#TEMPTABLE')不为NULL DROP TABLE#在您的SQL之前的结果并再试一次:-) – bummi 2014-10-09 13:38:10

+0

扩展在bummi的建议在执行他建议的陈述后使用批次分隔符“GO”。 – 2014-10-09 13:42:27

回答

0

什么在我的处境工作是IF OBJECT_ID( 'tempdb中#不是Temptable。')IS NOT NULL DROP TABLE #Results GO

谢谢大家!

0

错误消息There is already an object named '#TEMPTABLE' in the database.意味着你已经创建了一个临时表,这个名字在前面跑。要解决这个问题,你需要DROP这张表或者使用别的名字。

下降,使用下面的代码查询之前:

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

发布评论中添加的解决方案。按照以下建议标记为社区wiki:[link](http://meta.stackoverflow.com/a/251598/1476885)。 – Zanon 2014-10-10 21:49:48