Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.09.18;
Скачать: [xml.tar.bz2];

Вниз

Как заполнить таблицу числами от 1 до 80?   Найти похожие ветки 

 
kreyl   (2005-08-04 09:58) [0]

Таблица с одним столбцом целых. Как ее заполнить числами от 1 до 80 - при помощи запроса, конечно, а не построчно?
Простите за чайницкий вопрос :-) Спасибо!


 
ЮЮ ©   (2005-08-04 09:59) [1]

>Таблица с одним столбцом целых
:)

А строки в ней уже есть?


 
evvcom ©   (2005-08-04 10:04) [2]


> при помощи запроса, конечно, а не построчно?

insert into MyTable (
 select 1 from dual
 union
 select 2 from dual
 union
 <и так 80 раз :)>
 select 80 from dual);

:-))


 
ЮЮ ©   (2005-08-04 10:07) [3]

DELETE FROM MyTable
INSERT INTO MyTable
 SELECT Num FROM MySuperTable WHERE Num BETWEEN 1 AND 80

если движок поддерживает, можно одним оператором

SELECT Num FROM MySuperTable WHERE Num BETWEEN 1 AND 80
 INTO MyTable

где
 MySuperTable - заранее приготовленная таблица с одни столбцом, куда ПОСТРОЧНО (нет другого пути) добавлены записи от 1 до максимального в твоей области применения


 
Zz_   (2005-08-04 11:44) [4]


declare @t table (A int)
insert into @t select 1 + A*25+B*5+C from
(select A = 0 union all select 1 union all select 2 union all select 3 union all select 4)a,
(select B = 0 union all select 1 union all select 2 union all select 3 union all select 4)b,
(select C = 0 union all select 1 union all select 2 union all select 3 union all select 4)c
where A*25+B*5+C < 80

select * from @t order by 1


 
ЮЮ ©   (2005-08-04 11:48) [5]

>Zz_   (04.08.05 11:44) [4]

А вдруг это LocalSQL ?


 
Ольга   (2005-08-04 11:51) [6]


> при помощи запроса, конечно, а не построчно

Как не извращайся, а сервер все равно будет делать это построчно.
Так что for i:=1 to 80 do insert... самый лучший вариант.


 
Sergey13 ©   (2005-08-04 11:57) [7]

2[6] Ольга   (04.08.05 11:51)
Зато команда серверу передастся всего 1 раз.


 
Ольга   (2005-08-04 12:33) [8]


> [7]

Не стоит овчинка выделки, разве что сеть у kreyl совсем дохлая, а так и тот и другой вариант будут работать одинаково быстро.


 
Sergey13 ©   (2005-08-04 12:38) [9]

2 [8] Ольга   (04.08.05 12:33)
> Не стоит овчинка выделки
Для такой задачи программу (или запрос) писать - вообще нонсенс. Тем более если не знаешь как. 8-)


 
AndrewK   (2005-08-04 17:05) [10]

Ну вот решение для MS SQL Server 2000. Думаю идею можно переложить и на други движки.

Делаем функцию:


CREATE FUNCTION IntListGet (@Start int, @Stop int)
RETURNS @Return TABLE (Value int)
AS
BEGIN
 declare @i int
 set @i=@Start
 while @i<=@Stop
 begin
   insert @Return select @i
   set @i=@i+1
 end
 RETURN
END


Поучаем нужный датасет:


select
*
from
dbo.IntListGet (1, 80)


 
EthernalWonderer   (2005-08-05 23:18) [11]

А вот решение для Oracle:

Insert Into MyTable Select RowNum From All_Objects Where RowNum < 81



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2005.09.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.013 c
14-1124653743
Piter
2005-08-21 23:49
2005.09.18
Помогите опознать песенку...


4-1122363000
Jupiter
2005-07-26 11:30
2005.09.18
Как узнать размер папки


14-1124725089
Santrope
2005-08-22 19:38
2005.09.18
Как запретить вход в домен нескольким пользователям ?


2-1123685048
Klopan
2005-08-10 18:44
2005.09.18
DateTime


3-1123502152
Roman9
2005-08-08 15:55
2005.09.18
перенос данных





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский