Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как сформировать значения столбца таблицы в одной строке? / 8 сообщений из 8, страница 1 из 1
31.10.2002, 12:38:32
    #32063539
faun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сформировать значения столбца таблицы в одной строке?
У меня есть таблица Table с полями ID,Name,Sort
Я делаю: select @Str=@Str+Name+';' from Table

Подскажите, как сформировать значения столбца таблицы в одной строке @Str через разделитель, в порядке определенном полем Sort? Требуется эффективный запрос. Заранее большое спасибо.
...
Рейтинг: 0 / 0
31.10.2002, 12:46:42
    #32063547
vap
vap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сформировать значения столбца таблицы в одной строке?
Возможно вы забыли инициализировать @str
а конкатенация срабатывает, главное чтобы места в переменной хватило.

Код: plaintext
1.
2.
3.
declare @str varchar( 2000 )
set @str = ''
select @str = @str + ';' + name from sysusers order by uid
select @str
...
Рейтинг: 0 / 0
31.10.2002, 14:57:10
    #32063642
alk
alk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сформировать значения столбца таблицы в одной строке?
пробовал такой способ в UDF - не работает
возвращает только разделитель

у кого нибудь работает как описал vap ?

приходится в курсоре собирать строку....
...
Рейтинг: 0 / 0
31.10.2002, 15:30:44
    #32063676
VVG_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сформировать значения столбца таблицы в одной строке?
...
Рейтинг: 0 / 0
31.10.2002, 15:44:06
    #32063683
MiCe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сформировать значения столбца таблицы в одной строке?
Код: plaintext
1.
2.
3.
4.
5.
6.
declare @str varchar( 8000 )
set @str = ''
select @str = @str  + cast(name as varchar( 10 ))+ ';'
from sysusers
order by uid
SET @str=left(@str,len(@str)- 1 )
select @str

усе работает....
...
Рейтинг: 0 / 0
31.10.2002, 15:46:41
    #32063686
MiCe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сформировать значения столбца таблицы в одной строке?
Код: plaintext
1.
2.
3.
4.
5.
6.
declare @str varchar( 8000 )
set @str = ''
select @str = @str  + cast(name as varchar( 10 ))+ ';'
from sysusers
order by uid
SET @str=left(@str,len(@str)- 1 )
select @str

усе работает....
...
Рейтинг: 0 / 0
31.10.2002, 16:21:53
    #32063707
alk
alk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сформировать значения столбца таблицы в одной строке?
действительно, получилось.

не сочтите за наглость:
а как сделать дистинктивную ?

при вставке distinct - перестает собирать строку, выводит первое значение и все
...
Рейтинг: 0 / 0
31.10.2002, 16:41:28
    #32063725
faun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сформировать значения столбца таблицы в одной строке?
Спасибо за ответы.
Собственно, когда я задавал вопрос я использовал запрос подобный запросу предложенного vap. Отличае заключалось в сложном вложенным подзапросе. Без order by строка формировалась нормально. С order by в строке оставаллось только последнее значение. Проблему удалось решить увеличением @Str с 1500 до 2000 (и выше), причем результирующая строка содержала всего 22 символа. Пробовал воспроизвести этот случай более просто, чтобы выложить в форум, но ничего не получилось - все работает нормально. Наверно это какой-то баг SQL Server-а.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как сформировать значения столбца таблицы в одной строке? / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]