powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / insert в цикле
10 сообщений из 10, страница 1 из 1
insert в цикле
    #38771624
шерлок
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть таблица

Фимилия КоличествоИванов 6Петров 10

Надо вставить в новую таблицу Иванова 6 раз А Петрова 10 раз

Подскажите пожалуйста
...
Рейтинг: 0 / 0
insert в цикле
    #38771637
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
курсор + While
...
Рейтинг: 0 / 0
insert в цикле
    #38771641
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосовкурсор + While
вот так сразу человека плохому учите. join каждой строки на таблицу с целыми числами с ограничением количества и все
...
Рейтинг: 0 / 0
insert в цикле
    #38771643
шерлок
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владислав Колосов,
Я не могу понять как сделать WHILE для каждой фамилии

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
DECLARE @x VARCHAR(255);
DECLARE @Value [int]


DECLARE tableCursor CURSOR
FOR 

select [x], [Value] from #help
OPEN tableCursor

--Get the first table name from the cursor
FETCH NEXT FROM tableCursor INTO @x , @Value

 WHILE @@FETCH_STATUS = 0
BEGIN
   
   
   INSERT  into #tabl
select [x], [Value] from #help

END

CLOSE tableCursor
DEALLOCATE tableCursor
...
Рейтинг: 0 / 0
insert в цикле
    #38771645
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
шерлокЯ не могу понять как сделать WHILE для каждой фамилии
Добавить еще один вложенный WHILE от 1 до @Value
...
Рейтинг: 0 / 0
insert в цикле
    #38771647
o-o
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
o-o
Гость
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
declare @t table (col varchar(10), cnt int);
insert into @t values ('aaa', 5), ('bbb', 10);

select col
from @t t cross apply (select n from dbo.Nums where n <= cnt)a
---
col
aaa
aaa
aaa
aaa
aaa
bbb
bbb
bbb
bbb
bbb
bbb
bbb
bbb
bbb
bbb
...
Рейтинг: 0 / 0
insert в цикле
    #38771674
шерлок
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Msg 208, Level 16, State 1, Line 1
Invalid object name 'dbo.Nums'.
...
Рейтинг: 0 / 0
insert в цикле
    #38771683
шерлок
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
шерлок,

Нашел решение

http://www.sql.ru/forum/315007/kak-zadvoit-ili-zatroit-zapisi-v-zaprose-iz-tablicy

Но там без условия, а мне нужно, чтобы количество зависело от фамилии
...
Рейтинг: 0 / 0
insert в цикле
    #38771742
o-o
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
o-o
Гость
шерлокMsg 208, Level 16, State 1, Line 1
Invalid object name 'dbo.Nums'.
нету -- заведите.

для лентяев во всех смыслах:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
declare @t table (col varchar(10), cnt int);
insert into @t values ('aaa', 5), ('bbb', 10);

with nums as (
select number + 1 as n
from master..spt_values
where type = 'p'
)

select col
from @t t cross apply (select n from Nums where n <= cnt)a
...
Рейтинг: 0 / 0
insert в цикле
    #38771749
шерлок
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
o-o,

Спасибо! Крою
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / insert в цикле
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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