Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Результаты в одну строку  [new]
ivandrova
Member

Откуда:
Сообщений: 17
Добрый день!

Следующий запрос:
select date1, date2 from table1 where field = 555

выведет:
date1 date2
2018-01-01 2018-01-05
2018-01-06 2018-01-12

как вывести результат в одну строку типа такого
res
"2018-01-01 - 2018-01-05; 2018-01-06 - 2018-01-12"
2 фев 18, 11:47    [21160078]     Ответить | Цитировать Сообщить модератору
 Re: Результаты в одну строку  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
ivandrova,

https://www.sqlshack.com/multiple-options-to-transposing-rows-into-columns/
2 фев 18, 11:49    [21160080]     Ответить | Цитировать Сообщить модератору
 Re: Результаты в одну строку  [new]
LSV
Member [заблокирован]

Откуда: Киев
Сообщений: 30817
TaPaK
ivandrova,

https://www.sqlshack.com/multiple-options-to-transposing-rows-into-columns/
Речь не про ПИВОТы, а про "колонку в одну строку".

Я делаю SQL ф-цию, кот. делает примерно так:

set @MyStr=''

select @MyStr = @MyStr + ';' + MyField
from .....

return @MyStr
2 фев 18, 11:54    [21160098]     Ответить | Цитировать Сообщить модератору
 Re: Результаты в одну строку  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
LSV,

мда...
автор
про "колонку в одну строку".

было 2 строки стала одна... дейстивтельно

автор
Я делаю SQL ф-цию, кот. делает примерно так:

set @MyStr=''

select @MyStr = @MyStr + ';' + MyField

как же это печально
2 фев 18, 11:57    [21160109]     Ответить | Цитировать Сообщить модератору
 Re: Результаты в одну строку  [new]
iap
Member

Откуда: Москва
Сообщений: 46953
SELECT DISTINCT t.field
,STUFF
 (
  (
   SELECT ';'+CONVERT(varchar(10),tt.date1,126)+' - '+CONVERT(varchar(10),tt.date2,126)
   FROM table1 ее
   WHERE tt.field=t.field
   ORDER BY tt.date1,tt.date2
   FOR XML PATH(''),TYPE
  ).value('.','varchar(100)')
  ,1,1,''
 ) [date]
FROM table1 t
ORDER BY t.field;



select date1, date2 from table1 where field = 555
2 фев 18, 12:12    [21160141]     Ответить | Цитировать Сообщить модератору
 Re: Результаты в одну строку  [new]
iap
Member

Откуда: Москва
Сообщений: 46953
WHERE t.field=555
можно ещё добавить
2 фев 18, 12:13    [21160144]     Ответить | Цитировать Сообщить модератору
 Re: Результаты в одну строку  [new]
ivandrova
Member

Откуда:
Сообщений: 17
iap
SELECT DISTINCT t.field
,STUFF
 (
  (
   SELECT ';'+CONVERT(varchar(10),tt.date1,126)+' - '+CONVERT(varchar(10),tt.date2,126)
   FROM table1 ее
   WHERE tt.field=t.field
   ORDER BY tt.date1,tt.date2
   FOR XML PATH(''),TYPE
  ).value('.','varchar(100)')
  ,1,1,''
 ) [date]
FROM table1 t
ORDER BY t.field;



select date1, date2 from table1 where field = 555


Спасибо! Работает!
Если у вас есть время, то распишите пожалуйста что к чему.
2 фев 18, 12:44    [21160259]     Ответить | Цитировать Сообщить модератору
 Re: Результаты в одну строку  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1066
ivandrova,
да, дай г..на. дай ложку.
2 фев 18, 13:12    [21160358]     Ответить | Цитировать Сообщить модератору
 Re: Результаты в одну строку  [new]
LSV
Member [заблокирован]

Откуда: Киев
Сообщений: 30817
TaPaK
как же это печально
Что именно, бро ?
2 фев 18, 13:16    [21160374]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить