产生价值

大多数数据库没有本地生成一系列数字用于临时使用的方法; 但是,公用表表达式可以与递归一起使用来模拟该类型的函数。

下面的示例生成一个名为 Numbers 的公用表表达式,其中列 i 有一行数字 1-5:

--Give a table name `Numbers" and a column `i` to hold the numbers
WITH Numbers(i) AS (
    --Starting number/index
    SELECT 1
    --Top-level UNION ALL operator required for recursion
    UNION ALL
    --Iteration expression:
    SELECT i + 1
    --Table expression we first declared used as source for recursion
    FROM Numbers
    --Clause to define the end of the recursion
    WHERE i < 5
)
--Use the generated table expression like a regular table
SELECT i FROM Numbers;
I
1
2
3
4

此方法可以与任何数字间隔以及其他类型的数据一起使用。