PRESTO的VALUES使用

本文介绍了Presto SQL中的VALUES语句,用于创建字面内联表。VALUES可以用于SELECT的FROM子句,INSERT语句等,提供了一种方便的方式定义数据。通过AS可以为匿名表和列指定名称。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概要

VALUES row [, ...]
其中, `row`是一个表达式,或者是如下形式的表达式列表:
( column_expression [, ...] )


描述

定义一张字面内联表。

任何可以使用查询语句的地方都可以使用VALUES, 如放在SELECT语句的FROM后面,放在INSERT里,甚至放在最顶层。
VALUES默认创建一张匿名表,并且没有列名。表名和列名可以通过AS进行命名。

 

presto:default> values 1, 2, 3;
 _col0
-------
     1
     2
     3
(3 rows)


presto:default> values (1, 'a'), (2, 'b'), (3, 'c');
 _col0 | _col1
-------+-------
     1 | a
     2 | b
     3 | c
(3 rows)


presto:default> values (array[1, 2], array[2, 4]), (array[1, 3], array[2, 6]);
 _col0  | _col1
--------+--------
 [1, 2] | [2, 4]
 [1, 3] | [2, 6]
(2 rows)


presto:default> values (array[1, 2], '1+2=3'), (array[1, 3], '1+3=4');
 _col0  | _col1
--------+-------
 [1, 2] | 1+2=3
 [1, 3] | 1+3=4
(2 rows)


presto:default> select * from (values 1, 2, 3) as t (id);
 id
----
  1
  2
  3
(3 rows)


presto:default> select * from (values (1, 'a'), (2, 'b'), (3, 'c')) as t (id, word);
 id | word
----+------
  1 | a
  2 | b
  3 | c
(3 rows)

 

presto:default> select
             -> *
             -> from (
             ->     values 3
             -> ) as t (id)
             -> cross join (
             ->     values 1, 2, 3
             -> ) as t (num);
 id | num
----+-----
  3 |   1
  3 |   2
  3 |   3
(3 rows)


presto:default> select
             -> *
             -> from (
             ->     values 3
             -> ) as t (id)
             -> cross join unnest(
             ->     array[1, 2, 3]
             -> ) as t (num);
 id | num
----+-----
  3 |   1
  3 |   2
  3 |   3
(3 rows)

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值