【问题标题】:ORDER BY clause in SAP HANA different from SQL Server?SAP HANA 中的 ORDER BY 子句与 SQL Server 不同?
【发布时间】:2022-07-04 18:40:42
【问题描述】:

我在 SAP HANA 中使用 ORDER BY 子句:

SELECT a
FROM (
    SELECT 'r' AS A FROM DUMMY
    UNION
    SELECT 'V' FROM DUMMY
    UNION
    SELECT 'a' FROM DUMMY
    UNION
    SELECT 'A' FROM DUMMY
) a
ORDER BY A

在 SAP HANA 中,结果是:

A
A
V
a
r

但是在 SQL Server 中运行时,结果是:

A
a
A
r
V

为什么这个顺序不同?我们可以在 SAP HANA 的数据库级别访问和查看此设置吗?如何在 HANA 中获得与在 SQL Server 中相同的排序?

【问题讨论】:

  • 我在您的查询中没有看到任何 ORDER BY 子句
  • 添加了缺失的代码位 :)
  • 一个区分大小写,一个不区分大小写。根据您的喜好更改一个以匹配另一个。
  • 对于不区分大小写的排序,基于英文,您可以使用ORDER BY A COLLATE ENGLISH_CI(后缀CI表示不区分大小写)。可能的值在COLLATIONS 系统视图中定义。

标签: sql hana case-insensitive


【解决方案1】:

您正在寻找的是在对行进行排序时使用的collation。排序规则指定对文本字符串应用何种排序。这对于决定如何对小写和大写字符进行排序以及如何对带有变音符号的字符进行排序尤为重要。

在 SAP HANA 中,您可以在创建数据库时为整个数据库指定默认排序规则,在创建表时为表列指定排序规则,或指定要用作 orderby 子句的一部分的排序规则。

要查看可用的排序规则,请查看COLLATIONS 系统视图。

要将排序规则指定为 orderby 子句的一部分,请参见以下示例:

 select * from mytable 
     order by col1 
     COLLATE TURKISH;

https://answers.sap.com/answers/12900664/view.html


另见What does collation mean?

【讨论】:

    猜你喜欢
    • 2017-02-24
    • 2018-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-13
    相关资源
    最近更新 更多