可用版本:Dev (3.21) | 最新 (3.20) | 3.19 | 3.18 | 3.17 | 3.16 | 3.15 | 3.14 | 3.13 | 3.12 | 3.11

字符串大小写敏感性

适用于 ✅ 开源版   ✅ 专业版   ✅ 企业版

大多数数据库允许指定 COLLATION,这允许重新定义字符串值的排序。默认情况下,ASCII、ISO 或 Unicode 编码应用于字符数据,并根据相应的编码应用排序。

然而,有时某些查询希望忽略编码的某些部分,例如将大写和小写字符同等对待,使得 ABC = abc,或者使得 ABC, jkl, XyZ 是一个有序的字符串列表(不区分大小写)。

对于这些临时的排序用例,大多数人求助于使用 LOWER()UPPER(),如下所示:

-- Case-insensitive filtering:
SELECT * FROM BOOK
WHERE upper(TITLE) = 'ANIMAL FARM'

-- Case-insensitive ordering:
SELECT *
FROM AUTHOR
ORDER BY upper(FIRST_NAME), upper(LAST_NAME)
// Case-insensitive filtering:
create.selectFrom(BOOK)
      .where(upper(BOOK.TITLE).eq("ANIMAL FARM")).fetch();

// Case-insensitive ordering:
create.selectFrom(AUTHOR)
      .orderBy(upper(AUTHOR.FIRST_NAME), upper(AUTHOR.LAST_NAME))
      .fetch();

反馈

您对此页面有任何反馈吗? 我们很乐意听到您的意见!

The jOOQ Logo