2017-01-22 16 views
1

會有什麼在MS SQL Server查詢並置在一個字符串我行,用逗號分隔的一個逗號分隔的字符串(像下面所示)得到行

query to delimeter string

+0

您正在使用哪些DBMS? Oracle或SQL Server?你有嘗試過什麼嗎? – JSapkota

+0

SQL SERVER,我不知道該怎麼辦..... –

+1

請看看這裏http://stackoverflow.com/q/194852/1530987 – crowchirp

回答

7

使用STUFFFOR XML

創建和填充示例表(保存我們這一步在你未來的問題)

DECLARE @T AS TABLE 
(
    Name varchar(10) 
) 

INSERT INTO @T VALUES 
('John'), 
('Vicky'), 
('Sham'), 
('Anjli'), 
('Manish') 

查詢:

SELECT STUFF((
    SELECT ',' + Name 
    FROM @T 
    FOR XML PATH('') 
), 1, 1, '') As [output]; 

結果:

output 
John,Vicky,Sham,Anjli,Manish 
1

假設你的列名是NAME和表名是MYTABLE你可以使用下面的查詢:

DECLARE @strTemp VARCHAR(MAX) 

SET @strTemp = '' 

SELECT @strTemp = @strTemp + ISNULL(NAME,'') + ',' 
FROM MYTABLE 

--Remove last comma 
SET @strTemp = SUBSTRING(@strTemp ,1,LEN(@strTemp) -1) 

--Get Result 
SELECT @strTemp 

你可以使用以下

過濾空記錄
SELECT @strTemp = @strTemp + NAME + ',' 
FROM MYTABLE 
WHERE NAME IS NOT NULL