2013-10-22 72 views
0

我正在使用SQL。在我的公司,我們有一個表格,顯示技術人員在服務電話中編寫的文本。但是,當文本保存在表格中時,IT會將其逐行分開。換句話說,一個呼叫文本可以包含五個或更多記錄。我想編寫一個查詢來顯示一次的電話號碼以及一條記錄中的文本。問題是呼叫文本可以是從5到25行/記錄的任何地方。每個記錄具有相同的呼叫號碼。 SQL中有一種方法可以連接一個調用的所有文本行嗎?你可以連接SQL中可變數量的文本嗎?

+0

你在MySQL或SQL Server的工作? – Sonam

回答

0

嘗試使用GROUP_CONCAT

SELECT GROUP_CONCAT(description, '. ') FROM calls WHERE number = '123456'; 
1

如果您使用的是SQL服務器,你可以用下面的查詢:

select call_number, 
    stuff((SELECT distinct ' ' + text_column 
      FROM Table_Name T2 
      where T2.call_number = T1.call_number 
      FOR XML PATH('')),1,1,'') 
from Table_Name T1 
group by call_number 
+0

我一直使用這個連接多行文本。有一點需要記住的是,如果存在無效的XML字符,則可能需要標識TYPE。例如'(SELECT FROM FOR PATH PATH(''),TYPE).value('。',N'nvarchar(max)')'。 – JoeFletch

相關問題