

数仓如何设置大小写不敏感函数
source link: https://juejin.cn/post/7078863380198457358
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

本文分享自华为云社区《GaussDB(DWS) 大小写不敏感函数》,作者:积少成多。
1. 大小写不敏感函数
大小写不敏感函数是指入参忽略大小写的函数,此类函数的主要应用场景是字符串的查询。是否大小写敏感会影响字符串查询的结果。
涉及到字符串查询的函数有locate函数、position函数、strpos函数。locate函数返回字符串中子串第一次出现的位置。函数有两种参数接收方式:
1.输入被查询子串和查询字符串,不包含查询起始位置,默认从1开始。
2.输入被查询子串和查询字符串以及查询初始位置。
若能查询到子串,则返回其第一次出现的位置索引。若子串不在字符串中,返回0。
position函数和strpos函数与locate函数功能相近,区别在于函数入参和使用形式。
这些字符串处理函数是兼容MySQL中的字符串处理函数。而MySQL的字符串处理函数在MySQL默认情况下,是大小写不敏感的,也就是说入参忽略大小写情况进行查询,而DWS默认是大小写敏感的。
eg:select locate(‘pos’, ‘postest’), locate(‘Pos’, ‘postest’);
DWS结果:
locatelocate10
MySQL结果:
locatelocate11
2. 相关GUC参数
在MySQL中是通过底层设计实现入参大小写不敏感的,但在DWS的MySQL兼容性模式下,我们是通过设置GUC参数:SET behavior_compat_options=‘case_insensitive’,可使这些字符串处理函数入参大小写不敏感,兼容MySQL场景。
3. 结果展示
locate:
strpos:
position:
根据结果可以看出,通过设置GUC参数达到了预期入参字符大小写不敏感的目的。但是目前比较局限,无法通过内核全局设置,使所有入参都能达到大小写不敏感的目的。
想了解GuassDB(DWS)更多信息,欢迎微信搜索“GaussDB DWS”关注微信公众号,和您分享最新最全的PB级数仓黑科技,后台还可获取众多学习资料哦~
Recommend
-
68
-
61
字符串的大小写转换功能在日常中经常使用。那么如何实现一个简单的大小写转换功能呢? 在php中,最终使用的是c语言的toupper,tolower函数将字符进行大小写转换。因此需要定义一个字符大小写转换的函数。 //字符转大写p...
-
9
一晚上掌握数仓必会函数 (查看原文) 前言 看完这篇文章掌握以下内容 时间函数 date_format 格式化时间 select date_format('2020-03-10 08:00:00','yyyy-M....
-
7
PG中能否配置大小写敏感 - OSCHINA - 中文开源技术交流社区 开源问答...
-
7
Mysql 修改大小写敏感问题Mysql 修改大小写敏感问题 导航前往主站应用闲文杂记代码在线 注意此流程会清理所...
-
7
解析数仓OLAP函数:ROLLUP、CUBE、GROUPING SETS 摘要:Ga...
-
3
V2EX › 程序员 请问一个 git 大小写敏感的问题 unt...
-
7
大小写敏感(case sensitivity)是软件开发领域的议题,指同一个“词”拼写的大小写字母的不同可能会导致不同效果的场景。 接下来,我们谈谈前端开发领域中一些常见的大小写敏感/不敏感的场景: HTTP Header HTTP Method Cooki...
-
13
Windows大小写不敏感导致的git冲突 2022-11-15 2022-11-16...
-
8
Git:文件大小写不敏感 精选 原创 彭世瑜 2022-12-21 11:31:24...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK