WEB开发网
开发学院数据库DB2 DB2用户定义函数实现多种语言的排序 阅读

DB2用户定义函数实现多种语言的排序

 2007-05-20 16:19:14 来源:WEB开发网   
核心提示: 但是在斯洛伐克语中,两个字符的组合 CH 排在字母 H 和 I 之间,DB2用户定义函数实现多种语言的排序(6),查询 2. 用斯洛伐克语排序规则进行排序SELECT NAME FROM SORTKEY_NAMESORDER BY ICU.SORTKEY(NAME, 'LSK

但是在斯洛伐克语中,两个字符的组合 CH 排在字母 H 和 I 之间。

查询 2. 用斯洛伐克语排序规则进行排序

SELECT NAME FROM SORTKEY_NAMES
  ORDER BY ICU.SORTKEY(NAME, 'LSK')

结果 2. 用斯洛伐克语排序规则进行排序

NAME
  --------------------
  Alice
  Celine
  Cindy
  Don
  Hillary
  Charles
  Ian
  Sam

注意,Charles 现在位于 Hillary 和 Ian 之间。

比较

一些语言对于同一个字符有不同的表示方法。例如,在德语中,字母 ä 等于 ae,ö 等于 oe,ü 等于 ue。在 SQL 中进行比较时,并不考虑这些替代表示方法。

假设有两个德国城市名列表: NuernbergNürnberg

LuebeckLuebeck

KölnKoeln

当使用普通的 SQL 联结这两个列表时,不考虑替代的字符表示方法。

查询 3. 未规范化的联结

SELECT G1.CITY AS CITY1, G2.CITY AS CITY2
  FROM SORTKEY_GERMAN1 AS G1, SORTKEY_GERMAN2 AS G2
  WHERE G1.CITY = G2.CITY
  ORDER BY G1.CITY

结果 3. 未规范化的联结

CITY1CITY2
  -------------------- --------------------
  LuebeckLuebeck

注意,在这两个表中只有拼写完全相同的城市名才被认为是相等的。

但是,SORTKEY UDF 可以处理字符的不同表示方法。在这种情况下,我们使用德语排序规则的 “phonebook” 变体并将强度设置为 1,从而忽略重音差异。(排序规则选项的完整列表见 “排序规则名”。)

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:DB 用户 定义

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接