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

Откуда:
Сообщений: 4
Вот у меня что есть:
declare @per varchar (1000)
DECLARE test_cursor CURSOR FOR
SELECT Project.[name] FROM Project
OPEN test_cursor
FETCH NEXT FROM test_cursor
into @per
WHILE @@FETCH_STATUS = 0
BEGIN

print @per
FETCH NEXT FROM test_cursor
into @per

END
CLOSE test_cursor
DEALLOCATE test_cursor
GO
мне выводятся три значение в столбик:
№1
№2
№3
КАК мне их сделать в строку через запятую ( т.е. №1,№2,№3 )
Подскажите, плиз!!!
11 ноя 03, 17:42    [413343]     Ответить | Цитировать Сообщить модератору
 Re: Значения через запятую...  [new]
Сергей Тихонов
Member

Откуда: Киев
Сообщений: 787
Подсказываю ;-) (осталось только переделать под себя):

/*-----------------------------------------------------------------------------

Перед выполнением процедуры должна существовать временная таблица
следующей структуры:
CREATE TABLE #TableList (
ListID int NOT NULL PRIMARY KEY CLUSTERED
)
*/

CREATE PROCEDURE [dbo].[ConvertTableToList]
@Separator char(1) -- собственно сепаратор (%af_src_str_0 или другой)

,@StrList varchar(8000) out -- строка со значениями, разделенными сепаратором

AS BEGIN
declare
@ListID int
if NULLIF(RTRIM(LTRIM(@Separator)), '') is NULL
begin
RAISERROR('Параметр [@Separator] должен иметь значение.', 16, 10) WITH SETERROR
RETURN -1
end
set @StrList = ''
declare CR cursor fast_forward for
select ListID
from #TableList
open CR
fetch next from CR into @ListID
while @@FETCH_STATUS = 0
begin
set @StrList = @StrList + CONVERT(varchar(10), @ListID) + @Separator
fetch next from CR into @ListID
end
close CR
deallocate CR
set @StrList = REPLACE(@StrList, ' ', '')
RETURN 0
END
11 ноя 03, 18:08    [413386]     Ответить | Цитировать Сообщить модератору
 Re: Значения через запятую...  [new]
злой шаман
Member

Откуда: Питер
Сообщений: 1253
Курсоры то тут зачем... FAQ
11 ноя 03, 18:17    [413400]     Ответить | Цитировать Сообщить модератору
 Re: Значения через запятую...  [new]
BIOS
Member

Откуда:
Сообщений: 4
Как это зачем......
А как же я без курсоров все это сделаю?
Или есть предложения?
11 ноя 03, 18:18    [413403]     Ответить | Цитировать Сообщить модератору
 Re: Значения через запятую...  [new]
BIOS
Member

Откуда:
Сообщений: 4
Сергей, я не совсеи понял.
set @StrList = @StrList + CONVERT(varchar(10), @ListID) + @Separator
Это не совсем то.....условия не те.......
блин...просто торможу уже в конце рабочего дня...
11 ноя 03, 18:20    [413407]     Ответить | Цитировать Сообщить модератору
 Re: Значения через запятую...  [new]
злой шаман
Member

Откуда: Питер
Сообщений: 1253
Читаем фак для начала, потом смотрим на свое решение.
11 ноя 03, 18:35    [413443]     Ответить | Цитировать Сообщить модератору
 Re: Значения через запятую...  [new]
Сергей Тихонов
Member

Откуда: Киев
Сообщений: 787
> BIOS
Для тебя разница в том, что у тебя список значений другого типа. Я поэтому и написал: обработать напильником под себя... ;-))
11 ноя 03, 19:25    [413519]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить