2014-03-31 73 views
0

請參考下面的SQL DDL:返回兩行,單行

create table dbo.Test(id int, name varchar(30)) 

INSERT INTO Test values (1, 'Mark') 
INSERT INTO Test values (2,'Williams') 

我試圖返回:「馬克·威廉姆斯」使用SQL SELECT。我曾嘗試使用SQL數據透視表,但它沒有奏效。

+0

支點將採取您1列/ 2記錄表並返回爲2列/ 1記錄結果集。 –

+0

你有沒有在你的應用程序開發中的這種情況? – Hunter

回答

1

可能比COALESCE更靈活的是使用的東西,FOR XML模式:

SELECT TOP 1 
     STUFF((SELECT ' ' + Name AS [text()] 
       FROM dbo.Test 
       ORDER BY id 
       FOR XML PATH('')), 1, 1, '') Concatenated 
FROM TEST 
1

試試這個:

DECLARE @Return VARCHAR(MAX) 

SELECT @Return = COALESCE(@Return+' ','') + name 
FROM dbo.TEST 

SELECT @Return 
1
DECLARE @NameList VARCHAR(8000) 
SELECT @NameList = COALESCE(@NameList + ' ', '') + Name 
FROM Test 
SELECT @NameList 

更多COALESCE