跳到主要内容
跳到主要内容

Values 表函数

Values 表函数允许你创建一个临时存储,用于为列填充值。它对于快速测试或生成示例数据非常有用。

注意

Values 是不区分大小写的函数。也就是说,VALUESvalues 都是有效的写法。

语法

VALUES 表函数的基本语法如下:

VALUES([结构,] 值...)

通常用作:

VALUES(
    ['column1_name Type1, column2_name Type2, ...'],
    (value1_row1, value2_row1, ...),
    (value1_row2, value2_row2, ...),
    ...
)

参数

  • column1_name Type1, ...(可选)。String 用于指定列名和类型。如果省略该参数,列名将依次为 c1c2 等。
  • (value1_row1, value2_row1)Tuples 包含任意类型的值。
注意

以逗号分隔的元组也可以用单个值代替。在这种情况下,每个值都被视为一行新数据。详情参见示例部分。

返回值

  • 返回一个包含传入值的临时表。

示例

SELECT *
FROM VALUES(
    'person String, place String',
    ('Noah', 'Paris'),
    ('Emma', 'Tokyo'),
    ('Liam', 'Sydney'),
    ('Olivia', 'Berlin'),
    ('Ilya', 'London'),
    ('Sophia', 'London'),
    ('Jackson', 'Madrid'),
    ('Alexey', 'Amsterdam'),
    ('Mason', 'Venice'),
    ('Isabella', 'Prague')
)
    ┌─person───┬─place─────┐
 1. │ Noah     │ 巴黎      │
 2. │ Emma     │ 东京      │
 3. │ Liam     │ 悉尼      │
 4. │ Olivia   │ 柏林      │
 5. │ Ilya     │ 伦敦      │
 6. │ Sophia   │ 伦敦      │
 7. │ Jackson  │ 马德里    │
 8. │ Alexey   │ 阿姆斯特丹│
 9. │ Mason    │ 威尼斯    │
10. │ Isabella │ 布拉格    │
    └──────────┴───────────┘

VALUES 也可以用于单个值,而不仅限于元组。例如:

SELECT *
FROM VALUES(
    'person String',
    'Noah',
    'Emma',
    'Liam',
    'Olivia',
    'Ilya',
    'Sophia',
    'Jackson',
    'Alexey',
    'Mason',
    'Isabella'
)
    ┌─person───┐
 1. │ Noah     │
 2. │ Emma     │
 3. │ Liam     │
 4. │ Olivia   │
 5. │ Ilya     │
 6. │ Sophia   │
 7. │ Jackson  │
 8. │ Alexey   │
 9. │ Mason    │
10. │ Isabella │
    └──────────┘

或者不提供行规范(在语法中为 'column1_name Type1, column2_name Type2, ...'),此时系统会自动为列命名。

例如:

-- 元组作为值
SELECT *
FROM VALUES(
    ('Noah', 'Paris'),
    ('Emma', 'Tokyo'),
    ('Liam', 'Sydney'),
    ('Olivia', 'Berlin'),
    ('Ilya', 'London'),
    ('Sophia', 'London'),
    ('Jackson', 'Madrid'),
    ('Alexey', 'Amsterdam'),
    ('Mason', 'Venice'),
    ('Isabella', 'Prague')
)
    ┌─c1───────┬─c2────────┐
 1. │ Noah     │ Paris     │
 2. │ Emma     │ Tokyo     │
 3. │ Liam     │ Sydney    │
 4. │ Olivia   │ Berlin    │
 5. │ Ilya     │ London    │
 6. │ Sophia   │ London    │
 7. │ Jackson  │ Madrid    │
 8. │ Alexey   │ Amsterdam │
 9. │ Mason    │ Venice    │
10. │ Isabella │ Prague    │
    └──────────┴───────────┘
-- 单值
SELECT *
FROM VALUES(
    'Noah',
    'Emma',
    'Liam',
    'Olivia',
    'Ilya',
    'Sophia',
    'Jackson',
    'Alexey',
    'Mason',
    'Isabella'
)
    ┌─c1───────┐
 1. │ Noah     │
 2. │ Emma     │
 3. │ Liam     │
 4. │ Olivia   │
 5. │ Ilya     │
 6. │ Sophia   │
 7. │ Jackson  │
 8. │ Alexey   │
 9. │ Mason    │
10. │ Isabella │
    └──────────┘

另请参阅