2017-01-22 3 views
1

Что будет запрос в MS SQL Server для конкатенации моих строк в одной строке, разделенную запятой (, как показано ниже)получить запятые строки из строк

query to delimeter string

+0

Какая СУБД вы используете? Oracle или SQL Server? И вы что-то пробовали? – JSapkota

+0

SQL SERVER, я понятия не имею, как это сделать ..... –

+1

Пожалуйста, смотрите здесь http://stackoverflow.com/q/194852/1530987 – crowchirp

ответ

7

Использование STUFF и FOR 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 

You может фильтровать нулевые записи, используя следующие

SELECT @strTemp = @strTemp + NAME + ',' 
FROM MYTABLE 
WHERE NAME IS NOT NULL 
Смежные вопросы