GBase 8a
适配迁移
文章
sql中字段值区分大小写规则
发表于2024-02-26 14:11:4947次浏览0个评论
1)投影列中的等值比较默认是不区分大小写,过滤条件部分的等值比较是默认区分,等值比较中涉及函数时以函数特征为准;
2)替换类函数区分大小写,如replace、translate,可以理解为在替换类处理时更严谨;
3)比较类函数默认不区分大小写,如greatest、field、find_in_set、instr、locate、case when、decode等,可理解为在比较等处理时默认宽松。
区分大小写的解决办法:
有两种方法,第一种使用仅需再列名称前加binary关键字,及以二进制形式校对,该方式更为灵活,建议采用第一种。
1)在列名称前些关键字binary,即强行指定按照字符的二进制进行运算,如select binary a1='AAA' from t1;
2)在建表时指定binary关键字,则字符运算时强行指定按照字符的二进制进行运算,以下t1为默认方式,t2表为指定校对规则为bin的方式。
| t1 | CREATE TABLE "t1" (
"a1" varchar(10) DEFAULT NULL
) ENGINE=EXPRESS DEFAULT CHARSET=utf8 TABLESPACE='sys_tablespace' |
| t2 | CREATE TABLE "t2" (
"a1" varchar(10) COLLATE utf8_bin DEFAULT NULL
) ENGINE=EXPRESS DEFAULT CHARSET=utf8 COLLATE=utf8_bin TABLESPACE='sys_tablespace' |
评论
登录后才可以发表评论
热门帖子
- 12025-12-01浏览数:182759
- 22023-05-09浏览数:25044
- 42023-09-25浏览数:18519
- 52020-05-11浏览数:17526