2017-02-19 1 views
0

У меня есть следующие значения в таблицеSQL: как преобразовать значения в строке переменной с префиксом и суффиксом

Exec_Date 
-------- 
2017-02-17 
2017-02-18 
2017-02-19 
2017-02-20 
2017-02-20 

значения в списке будет меняться, я должен поставить запрос и получить все различающиеся значения из строк в одной переменной с префиксом и siffix

как

[2017-02-17],[2017-02-18],[2017-02-19],[2017-02-20] 

Я попытался с помощью

DECLARE @Names VARCHAR(MAX) 
SELECT @Names = COALESCE(@Names + '],', '[') + Exec_Date 
FROM #TempTable 

SELECT @Names 

но он возвращает, как показано ниже, который не является правильным

[2017-02-17],2017-02-18],2017-02-19],2017-02-20 

ответ

0

Я думаю, что вы ищете QUOTENAME и STUFF:

declare @t table (Exec_Date date) 

insert into @t values 
('2017-02-17'), 
('2017-02-18'), 
('2017-02-19'), 
('2017-02-20') 

declare @Names varchar(max) = '' 

select @Names = @Names + ',' + quotename(Exec_Date) from @t; 

set @Names = stuff(@Names, 1, 1, '') 

select @Names 

Производит:

[2017-02-17],[2017-02-18],[2017-02-19],[2017-02-20] 
+0

Спасибо. Рабочий – sriram

+0

Готовый босс :). Спасибо снова – sriram

0

Just Add '],[' вместо '],' и добавьтев последнем

как следующий: -

Create table #TempTable (Exec_Date VARCHAR(MAX)) 
go 

insert into #TempTable values 
('2017-02-17'), 
('2017-02-18'), 
('2017-02-19'), 
('2017-02-20') 

DECLARE @Names VARCHAR(MAX) 
SELECT @Names = COALESCE(@Names + '],[', '[') + Exec_Date -- '],[' is added instead of '],' 
FROM #TempTable 

SELECT @Names = @Names + ']' -- this line is Added 

SELECT @Names 

Результат: -

[2017-02-17],[2017-02-18],[2017-02-19],[2017-02-20] 

 Смежные вопросы

  • Нет связанных вопросов^_^