Как выбрать несколько строк, заполненных константами?

AFAIK libunwind довольно портативен, и до сих пор я не нашел ничего более легкого в использовании.

142
задан Blagovest Buyukliev 31 January 2012 в 15:08
поделиться

2 ответа

SELECT 1, 2, 3
UNION ALL SELECT 4, 5, 6
UNION ALL SELECT 7, 8, 9
179
ответ дан 23 November 2019 в 22:05
поделиться

В PostgreSQL можно сделать:

SELECT  *
FROM    (
        VALUES
        (1, 2),
        (3, 4)
        ) AS q (col1, col2)

В других системах просто используйте UNION ALL:

SELECT  1 AS col1, 2 AS col2
-- FROM    dual
-- uncomment the line above if in Oracle
UNION ALL
SELECT  3 AS col1, 3 AS col2
-- FROM    dual
-- uncomment the line above if in Oracle

В Oracle, SQL Server и PostgreSQL также можно генерировать наборы записей произвольного количества строк (возможно с помощью внешней переменной):

SELECT  level
FROM    dual
CONNECT BY
        level <= :n

в Oracle,

WITH    q (l) AS
        (
        SELECT  1
        UNION ALL
        SELECT  l + 1
        FROM    q
        WHERE   l < @n
        )
SELECT  l
FROM    q
-- OPTION (MAXRECURSION 0)
-- uncomment line above if @n >= 100

в SQL Server,

SELECT  l
FROM    generate_series(1, $n) l

в PostgreSQL.

107
ответ дан 23 November 2019 в 22:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: