Select 来自直线上的值列表

Select from list of values on beeline

我使用 beeline,它是一个基于 SQLLine 的 JDBC 客户端,用于 运行 Hive 查询。 我想从值列表中 select,例如:

SELECT DISTINCT * FROM (a,b,b,c,d,..z)

可以吗?

SELECT DISTINCT *
FROM (
    SELECT 12
    UNION SELECT 23
    UNION SELECT 34
    UNION SELECT 12
    UNION SELECT 23
) AS t1;

PS: 也参考非常相关的问题 How can I select from list of values in SQL Server

你也可以使用stack,它比UNION快得多:

hive> select id from
    > (
    > select stack(5, --the number of elements
    > 10 ,
    > 20 ,
    > 30 ,
    > 40 ,
    > 50
    > ) as (id)
    > )s;
OK
10
20
30
40
50
Time taken: 4.88 seconds, Fetched: 5 row(s)

您可以尝试 splitexplode

 SELECT DISTINCT * FROM 
 (
 select explode( split('a,b,b,c,d,e,f' ,',')) c
 ) as t
 ORDER BY c