Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 参考 » 使用 SQL » SQL 函数 » SQL 函数 (A-D)

 

COMPARE 函数 [String]

用于根据可选归类规则比较两个字符串。

语法
COMPARE( 
string-expression-1,
string-expression-2
[, { collation-id  
| collation-name[(collation-tailoring-string) ] } ] 
)
参数
  • string-expression-1   第一个字符串表达式。

  • string-expression-2   第二个字符串表达式。

    字符串表达式只能包含使用数据库的字符集编码的字符。

  • collation-id   指定要使用的排序顺序的变量或整数常量。只能对内置归类使用 collation-id。请参见SORTKEY 函数 [String]

    如果不指定归类名或 ID,缺省值将是 Default Unicode multilingual。

  • collation-name   指定要使用的归类名称的字符串或字符变量。也可以指定 char_collation 或 db_collation(例如,COMPARE( 'abc', 'ABC', 'char_collation' );),以使用数据库的 CHAR 归类。类似地,可以指定 nchar_collation,以使用数据库的 NCHAR 归类。有关有效归类名的列表,请参见SORTKEY 函数 [String]

  • collation-tailoring-string   还可以指定归类定制选项 (collation-tailoring-string),以便能够对字符比较进行更多的控制。这些选项采用归类名后包括在圆括号内的 "关键字=值" 对的形式。例如,'UCA(locale=es;case=LowerFirst;accent=respect)'。指定这些选项的语法与为 CREATE DATABASE 语句的 COLLATION 子句定义的语法完全相同。请参见归类定制选项

    注意

    指定 UCA 归类时,支持所有归类定制选项。对于所有其它归类,仅支持区分大小写定制选项。

返回值

INTEGER,以您选择的归类规则为基础:

含义
1 string-expression-1 大于 string-expression-2
0 string-expression-1 等于 string-expression-2
-1 string-expression-1 小于 string-expression-2
注释

即使数据库启用了空格填充,COMPARE 函数也不会将空字符串和仅包含空格的字符串视为相等。COMPARE 函数使用 SORTKEY 函数生成用于比较的归类关键字。因此,空字符串、含有一个空格的字符串和含有两个空格的字符串的比较结果不会是相等。

如果 string-expression-1string-expression-2 中有一个为 NULL,则结果为 NULL。

另请参见
标准和兼容性
  • SQL/2003   服务商扩充。

示例

以下示例使用 COMPARE 函数执行三个比较:

SELECT COMPARE( 'abc','ABC','UCA(case=LowerFirst)' ),
       COMPARE( 'abc','ABC','UCA(case=Ignore)' ),
       COMPARE( 'abc','ABC','UCA(case=UpperFirst)' );

返回的三个值为 -1、0 和 1,分别表示每个比较的结果。第一个比较返回的结果为 -1,表示 string-expression-2 ('ABC') 小于 string-expresssion-1 ('abc')。这是因为在第一个 COMPARE 语句中将区分大小写设置为 LowerFirst。