請參考下面的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數據透視表,但它沒有奏效。
請參考下面的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數據透視表,但它沒有奏效。
可能比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
試試這個:
DECLARE @Return VARCHAR(MAX)
SELECT @Return = COALESCE(@Return+' ','') + name
FROM dbo.TEST
SELECT @Return
DECLARE @NameList VARCHAR(8000)
SELECT @NameList = COALESCE(@NameList + ' ', '') + Name
FROM Test
SELECT @NameList
更多COALESCE
支點將採取您1列/ 2記錄表並返回爲2列/ 1記錄結果集。 –
你有沒有在你的應用程序開發中的這種情況? – Hunter