hive字母排序

mrwjdhj3  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(502)

当我在配置单元查询中有一个“order by”子句时,例如:

SELECT *
FROM categories
ORDER BY category_name

结果将首先按所有大写字母排序,然后按所有小写字母排序。我需要一些表约束或配置来执行下面的行为。使用“上/下”进行会话排序将无济于事
当前结果:

AAA
KKK
ZZZ
aaa
bbb
yyy

预期结果

aaa
AAA
bbb
KKK
yyy
ZZZ

是否有任何配置强制配置单元先按字母顺序排序数据。在sql中,它的排序规则在oracle中,它的lts中,这种预期排序结果的正确配置是什么,以及在哪里设置它。
提前谢谢

g52tjvyc

g52tjvyc1#

为了实现字母排序或任何类型的排序,可以在查询中使用cluster by。

SELECT *
FROM categories
cluster BY LOWER(category_name);

您也可以使用distribute by和sort by选项来获得更定制的解决方案。从类别中选择*按较低者(类别名称)分发按较低者(类别名称)排序说明

ubof19bj

ubof19bj2#

就用这个怎么样 lower() ?

SELECT *
FROM categories
ORDER BY LOWER(category_name);

注意:这将是任意情况下的结果。因为在所有现代排序规则中,小写字母在大写字母之后,所以您可以:

SELECT c.*
FROM categories c
ORDER BY LOWER(c.category_name), c.category_name DESC;

相关问题