我使用beeline(一个基于sqlline的jdbc客户机)来运行配置单元查询。我想从一个列表中选择如下值:
SELECT DISTINCT * FROM (a,b,b,c,d,..z)
有可能吗?
smtd7mpg1#
你可以试试 split 以及 explode ```SELECT DISTINCT * FROM(select explode( split('a,b,b,c,d,e,f' ,',')) c) as tORDER BY c
split
explode
qyswt5oh2#
你也可以用 stack ,它的工作速度比union快得多:
stack
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)
w6mmgewl3#
SELECT DISTINCT * FROM ( SELECT 12 UNION SELECT 23 UNION SELECT 34 UNION SELECT 12 UNION SELECT 23 ) AS t1;
ps:另请参阅非常密切相关的问题:如何从sql server中的值列表中进行选择
3条答案
按热度按时间smtd7mpg1#
你可以试试
split
以及explode
```SELECT DISTINCT * FROM
(
select explode( split('a,b,b,c,d,e,f' ,',')) c
) as t
ORDER BY c
qyswt5oh2#
你也可以用
stack
,它的工作速度比union快得多:w6mmgewl3#
ps:另请参阅非常密切相关的问题:如何从sql server中的值列表中进行选择