Простите меня; Я никогда раньше не работал с MonetDB. Но документация заставляет меня поверить, что вы можете решить эту проблему с помощью функции ROW_NUMBER и предварительно заполненная таблица, такая как SYS.COLUMNS.
SELECT ROW_NUMBER() OVER () AS rownum
FROM SYS.COLUMNS;
Это попадает в категорию jooq.org просто брать случайные записи из «достаточно большой» таблицы.
Функция PostgreSQL generate_series элегантна, но нестандартна. Он отсутствует в других основных механизмах, таких как SQL Server, Oracle и MySQL. В вашей версии MonetDB его тоже нет.
В MonetDB есть функция ROW_NUMBER, близкий эквивалент в стандартный SQL. Он присваивает последовательное целое число строкам в результирующем наборе. Он выведет правильные значения, но ему уже нужны некоторые строки в вашей базе данных. Проблема курицы и яйца!
SYS.COLUMNS — это системная таблица метаданных, содержащая по одной строке для каждого столбца в вашей базе данных. Большинство «пустых» реляционных баз данных по-прежнему имеют сотни системных столбцов, которые появляются в таких таблицах.
Если первый запрос выдает больше строк, чем вам нужно, вы можете поместить его в подзапрос и отфильтровать промежуточный результат.
SELECT rownum
FROM (
SELECT ROW_NUMBER() OVER () AS rownum
FROM SYS.COLUMNS
) AS tally
WHERE rownum >= 1 AND rownum <= 10;
Но что, если вам нужно сгенерировать больше строк, чем есть в SYS.COLUMNS? К сожалению, форма запроса зависит от того, сколько строк вы хотите сгенерировать.
Распространенным обходным решением в сообществе Microsoft SQL Server было бы присоединение SYS.COLUMNS к самому себе. Это создаст промежуточную таблицу, содержащую квадрат числа строк в таблице. На практике это, вероятно, больше строк, чем вам когда-либо понадобится.
С самообъединением решение выглядит так:
SELECT rownum
FROM (
SELECT ROW_NUMBER() OVER () AS rownum
FROM SYS.COLUMNS AS a, SYS.COLUMNS AS b
) AS tally
WHERE rownum >= 1 AND rownum <= 100000;
Надеюсь, эти запросы актуальны и в мире MonetDB!
person
Iain Samuel McLean Elder
schedule
01.06.2014
generate_series
функцию в исходный код две недели назад. Можете ли вы построить из исходного кода и использовать это? - person Iain Samuel McLean Elder   schedule 01.06.2014