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

Откуда: Издалека долго
Сообщений: 1205
Доброго дня, коллеги
В oracle для генерации списков значений можно использовать
select column_value from table(sys.odcinumberlist(1,2,3,4,5))

SELECT LEVEL FROM DUAL CONNECT BY LEVEL<=5

Есть ли лаконичный вариант в sql?
Конструкция выглядит весьма монструозно, особенное, если список значений большой
with value_list as 
(select 1
   union all
 select 2
   union all
 select 3
   union all
 select 4
   union all
 select 4)
20 апр 18, 09:33    [21353684]     Ответить | Цитировать Сообщить модератору
 Re: Получение списка значений  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
шК0ДЕР,

ну например
SELECT * FROM (VALUES(1),(5),(7),(9),(10)) as a(b)

если последовательные, то можно через рекурсию
20 апр 18, 09:35    [21353694]     Ответить | Цитировать Сообщить модератору
 Re: Получение списка значений  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
Начиная с 2008й версии:

SELECT *
FROM (VALUES (1), (2), (3)) t(c)
20 апр 18, 09:35    [21353696]     Ответить | Цитировать Сообщить модератору
 Re: Получение списка значений  [new]
шК0ДЕР
Member

Откуда: Издалека долго
Сообщений: 1205
AlanDenton, TaPaK
Благодарю!
20 апр 18, 09:36    [21353700]     Ответить | Цитировать Сообщить модератору
 Re: Получение списка значений  [new]
mnbvcx
Member

Откуда:
Сообщений: 219
--В очередной реализации MS SQL Server 2005 появилась возможность использования рекурсивных CTE   конструкций, позволяющих 
--реализовывать циклы для генерации числовых последовательностей и итерационных вычислений.

WITH Series(a) AS
(
 SELECT 1
 UNION ALL
 SELECT a+1 FROM Series WHERE a < 100
)
SELECT * FROM Series;

http://www.sql-tutorial.ru/ru/book_generation_of_number_sequences_in_sql_server.html
20 апр 18, 09:41    [21353718]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить