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

Откуда:
Сообщений: 35
Необходимо содержимое запроса поместить в поле varchar(MAX). Поля в запросе различного типа (есть int, real, varchar). D качестве разделителя должен использоваться символ "точка с запятой". Через курсор не желательно - медленно. Подскажите как сделать?
29 фев 16, 11:50    [18876356]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование данных запроса в varchar(MAX)  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
STUFF(), CAST(), CONVERT(), "+", FOR XML PATH(''),TYPE, value()

Как-то вот так. С этими ключевыми словами
29 фев 16, 11:55    [18876381]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование данных запроса в varchar(MAX)  [new]
Glory
Member

Откуда:
Сообщений: 104751
ENP70
Необходимо содержимое запроса поместить в поле varchar(MAX). Поля в запросе различного типа (есть int, real, varchar). D качестве разделителя должен использоваться символ "точка с запятой". Через курсор не желательно - медленно. Подскажите как сделать?

1. sqlcmd - с выгрузкой в файл
2. bcp - с загрузкой полученного файла в поле таблицы
29 фев 16, 11:58    [18876401]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование данных запроса в varchar(MAX)  [new]
ENP70
Member

Откуда:
Сообщений: 35
iap
STUFF(), CAST(), CONVERT(), "+", FOR XML PATH(''),TYPE, value()

Как-то вот так. С этими ключевыми словами


Нужен не xml файл, а csv.
29 фев 16, 12:48    [18876708]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование данных запроса в varchar(MAX)  [new]
ENP70
Member

Откуда:
Сообщений: 35
Glory
ENP70
Необходимо содержимое запроса поместить в поле varchar(MAX). Поля в запросе различного типа (есть int, real, varchar). D качестве разделителя должен использоваться символ "точка с запятой". Через курсор не желательно - медленно. Подскажите как сделать?

1. sqlcmd - с выгрузкой в файл
2. bcp - с загрузкой полученного файла в поле таблицы


а без промежуточной выгрузки можно как нить?
29 фев 16, 12:49    [18876717]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование данных запроса в varchar(MAX)  [new]
Glory
Member

Откуда:
Сообщений: 104751
ENP70
а без промежуточной выгрузки можно как нить?

Как нибудь сами конечно можете.
Но вы же не хотите сами.
29 фев 16, 12:51    [18876733]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование данных запроса в varchar(MAX)  [new]
ENP70
Member

Откуда:
Сообщений: 35
Вобщем STUFF(), CAST(), CONVERT() и т.д. понятно. Собрать из записи строку с нужным разделителем не проблема. Вопрос как всю выборку поместить в поле.
29 фев 16, 12:51    [18876742]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование данных запроса в varchar(MAX)  [new]
Glory
Member

Откуда:
Сообщений: 104751
ENP70
Вопрос как всю выборку поместить в поле.

Командой INSERT/UPDATE
29 фев 16, 12:55    [18876785]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование данных запроса в varchar(MAX)  [new]
ENP70
Member

Откуда:
Сообщений: 35
Glory
ENP70
Вопрос как всю выборку поместить в поле.

Командой INSERT/UPDATE


Никогда бы не подумал....
А как INSERT/UPDATE сочетается с подзапросом, выдающим более одной строки?
29 фев 16, 16:15    [18878188]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование данных запроса в varchar(MAX)  [new]
Glory
Member

Откуда:
Сообщений: 104751
ENP70
Никогда бы не подумал....
А как INSERT/UPDATE сочетается с подзапросом, выдающим более одной строки?

А какая разница, сколько записей выдает подзапрос, если для вас "не проблема поместить все в строку с разделителем " ?
29 фев 16, 16:17    [18878198]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование данных запроса в varchar(MAX)  [new]
ENP70
Member

Откуда:
Сообщений: 35
Glory
ENP70
Никогда бы не подумал....
А как INSERT/UPDATE сочетается с подзапросом, выдающим более одной строки?

А какая разница, сколько записей выдает подзапрос, если для вас "не проблема поместить все в строку с разделителем " ?


Не проблема одну строку из набора данных склеить, про весь набор никто не говорил.
29 фев 16, 16:27    [18878248]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование данных запроса в varchar(MAX)  [new]
Glory
Member

Откуда:
Сообщений: 104751
ENP70
Не проблема одну строку из набора данных склеить, про весь набор никто не говорил.

Ну так и весь набор - тоже не проблема
29 фев 16, 16:27    [18878251]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование данных запроса в varchar(MAX)  [new]
ENP70
Member

Откуда:
Сообщений: 35
Glory
ENP70
Не проблема одну строку из набора данных склеить, про весь набор никто не говорил.

Ну так и весь набор - тоже не проблема

Каким образом? Через курсор?
29 фев 16, 16:29    [18878261]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование данных запроса в varchar(MAX)  [new]
TaPaK
Member

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

автор
DECLARE @Value VARCHAR(MAX) = ''

SELECT
@Value = @Value + name + ';'
FROM sysobjects
WHERE
Id < 100
29 фев 16, 16:29    [18878267]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование данных запроса в varchar(MAX)  [new]
Glory
Member

Откуда:
Сообщений: 104751
ENP70
Glory
пропущено...

Ну так и весь набор - тоже не проблема

Каким образом? Через курсор?

18876381
29 фев 16, 16:30    [18878270]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование данных запроса в varchar(MAX)  [new]
ENP70
Member

Откуда:
Сообщений: 35
Glory
ENP70
пропущено...

Каким образом? Через курсор?

18876381


Я же ответил, xml не катит, нужен текстовый файл с разделителями - ну требование такое.
29 фев 16, 16:33    [18878290]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование данных запроса в varchar(MAX)  [new]
Glory
Member

Откуда:
Сообщений: 104751
ENP70
Я же ответил, xml не катит, нужен текстовый файл с разделителями - ну требование такое.

А причем тут xml ?
29 фев 16, 16:35    [18878302]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование данных запроса в varchar(MAX)  [new]
ENP70
Member

Откуда:
Сообщений: 35
Glory
ENP70
Я же ответил, xml не катит, нужен текстовый файл с разделителями - ну требование такое.

А причем тут xml ?


Я про конструкцию ..."+", FOR XML PATH(''),TYPE, value()
29 фев 16, 16:37    [18878314]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование данных запроса в varchar(MAX)  [new]
Glory
Member

Откуда:
Сообщений: 104751
ENP70
Я про конструкцию ..."+", FOR XML PATH(''),TYPE, value()

И что ? У вас личная неприязнь к эти ключевым словам синтаксиса ?
29 фев 16, 16:38    [18878319]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование данных запроса в varchar(MAX)  [new]
Konst_One
Member

Откуда:
Сообщений: 11621
это для конструкция для конкатенации строк
29 фев 16, 16:38    [18878321]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование данных запроса в varchar(MAX)  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
ENP70
Glory
пропущено...

18876381


Я же ответил, xml не катит, нужен текстовый файл с разделителями - ну требование такое.
Вы бы местный FAQ почитали про конкатенацию.
И десятки тем на форуме про вашу проблему.
29 фев 16, 16:38    [18878323]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование данных запроса в varchar(MAX)  [new]
ENP70
Member

Откуда:
Сообщений: 35
iap
ENP70
пропущено...


Я же ответил, xml не катит, нужен текстовый файл с разделителями - ну требование такое.
Вы бы местный FAQ почитали про конкатенацию.
И десятки тем на форуме про вашу проблему.


Видимо плохо искал, если не трудно дайте ссылку.
29 фев 16, 16:44    [18878358]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование данных запроса в varchar(MAX)  [new]
TaPaK
Member

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

google "FOR XML PATH('')" у меня 4-й результат "Вывод результата выборки в строчку"... Лень штука непобедимая
29 фев 16, 16:46    [18878368]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование данных запроса в varchar(MAX)  [new]
ENP70
Member

Откуда:
Сообщений: 35
TaPaK
ENP70,

google "FOR XML PATH('')" у меня 4-й результат "Вывод результата выборки в строчку"... Лень штука непобедимая


Спасибо, вроде разобрался. Кстати про лень, победима, еще как победима. Вот вы мою одолели
29 фев 16, 17:01    [18878489]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить