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

Откуда:
Сообщений: 30
пример результата запроса (SQL)
строка:
продукт кол
пр1 1
пр2 1
пр3 2

вопрос: можно ли средстваи SQL разделить строку пр3 на две разные строки
13 сен 03, 12:03    [337776]     Ответить | Цитировать Сообщить модератору
 Re: Разделение строк  [new]
milenium
Member

Откуда: София
Сообщений: 70
Например?
13 сен 03, 12:44    [337780]     Ответить | Цитировать Сообщить модератору
 Re: Разделение строк  [new]
Acid
Member

Откуда:
Сообщений: 30
продукт кол
пр1 1
пр2 1
пр3 1
пр3 1
15 сен 03, 10:00    [338360]     Ответить | Цитировать Сообщить модератору
 Re: Разделение строк  [new]
iSestrin
Member

Откуда: Новосибирск
Сообщений: 3811
>средстваи SQL< можно, но придется либо забивать эти данные в доп. таблицу, либо объединять еще с одной, а т.к. к-во заранее неизвестно (неограничено), то последний способ плох ... а перевый плох тем, что придется это делать в цикле
15 сен 03, 10:06    [338373]     Ответить | Цитировать Сообщить модератору
 Re: Разделение строк  [new]
Alex Antonoff
Member

Откуда: Из лесу вестимо
Сообщений: 1251
либо функцию написать
15 сен 03, 10:41    [338431]     Ответить | Цитировать Сообщить модератору
 Re: Разделение строк  [new]
Acid
Member

Откуда:
Сообщений: 30
вот пишу SP (первую в жизни :)

CREATE PROCEDURE garanty
@n_conf int
AS
DECLARE @cname varchar(50), @kol int

CREATE table #tempgaranty
(n_prod int, [group] varchar(50), [name] varchar(50), [kol] int, n_conf int)


DELETE FROM #tempgaranty

while exists
(
SELECT c.n_prod, g.[short_name] AS [group], p.[name], c.n_conf, c.[kol]
FROM
( SELECT * FROM config_detail WHERE n_conf = @n_conf) c
LEFT OUTER JOIN products p
ON p.n_prod = c.n_prod
LEFT OUTER JOIN nabor_relation r
ON p.n_cat = r.n_cat
LEFT OUTER JOIN nabor_groups g
ON r.n_gr = g.n_gr
WHERE g.in_sblist = 1
)
BEGIN
SET @kol=10; //вот тут я хочу чтобы @kol присваивалось c.kol но никак не могу этого добится. пытался в запросе указывать select @kol=c.kol, c.n_prod....
и псевдоним указывать для полученого датасета (но даёт ошибку)

END
GO
15 сен 03, 12:13    [338619]     Ответить | Цитировать Сообщить модератору
 Re: Разделение строк  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
SET @kol=10

DELETE FROM #tempgaranty

[while] where exists
(
SELECT c.n_prod, g.[short_name] AS [group], p.[name], c.n_conf, c.[kol]
FROM
*********
WHERE g.in_sblist = 1 and c.[kol] = @kol
)

а так не работает?
15 сен 03, 12:31    [338660]     Ответить | Цитировать Сообщить модератору
 Re: Разделение строк  [new]
Acid
Member

Откуда:
Сообщений: 30
чего-то я не пойму. ведь будет проверятся условие
c.kol =(?) 10

не так ли?
а мне надо чтобы значение поля c.kol каждой строки присваивалось переменной @kol, (по строчно)

т.е.
select ........
result:
kol
4 //@kol=4
3 //@kol=3
1 //@kol=1
1 //@kol=1
15
5

а потом, в зависимости от значения kol я буду выполнять те или иные действия.
15 сен 03, 12:36    [338670]     Ответить | Цитировать Сообщить модератору
 Re: Разделение строк  [new]
Acid
Member

Откуда:
Сообщений: 30
Мне надо как-то результат Select'a (тот который стоит в exists), обозначить.
чтобы потом к нему по имени можно было бы обращатся.
добавление в конце "as t" даёт ошибку
16 сен 03, 09:29    [339937]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить