Sorting 蜂巢字母排序
当我在配置单元查询中有ORDERBY子句时 例如:Sorting 蜂巢字母排序,sorting,hadoop,hive,hql,lts,Sorting,Hadoop,Hive,Hql,Lts,当我在配置单元查询中有ORDERBY子句时 例如: SELECT * FROM categories ORDER BY category_name 结果将首先按所有大写字母排序,然后按所有小写字母排序 我需要一些表约束或配置来强制执行下面的行为。 使用UPPER/LOWER进行会话排序没有帮助 目前的结果: 预期结果 是否有任何配置强制配置单元首先按字母顺序排序数据。 在sql中,它是一个排序规则 在oracle及其LTS中 这种预期排序结果的正确配置是什么, 以及在哪里设置 感谢高级版使用较
SELECT *
FROM categories
ORDER BY category_name
结果将首先按所有大写字母排序,然后按所有小写字母排序
我需要一些表约束或配置来强制执行下面的行为。
使用UPPER/LOWER进行会话排序没有帮助
目前的结果:
预期结果
是否有任何配置强制配置单元首先按字母顺序排序数据。
在sql中,它是一个排序规则
在oracle及其LTS中
这种预期排序结果的正确配置是什么,
以及在哪里设置
感谢高级版使用较低版本怎么样
注意:对于结果的情况,这是任意的。因为在所有现代排序规则中,小写字母都位于大写字母之后,所以您可以执行以下操作:
SELECT c.*
FROM categories c
ORDER BY LOWER(c.category_name), c.category_name DESC;
为了实现字母排序或任何排序,可以在查询中使用clusterby
SELECT *
FROM categories
cluster BY LOWER(category_name);
您也可以使用distribute by with sort by选项来实现更定制的解决方案。
选择*
从类别
按较低类别_名称分发
按较低类别排序\u name DESC我有其他查询表的工具。因此,我需要一些表约束/配置来强制它按照我提到的那样运行。
SELECT *
FROM categories
ORDER BY LOWER(category_name);
SELECT c.*
FROM categories c
ORDER BY LOWER(c.category_name), c.category_name DESC;
SELECT *
FROM categories
cluster BY LOWER(category_name);