2014-10-09 65 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