MRS HetuEngine 处理字符串中的特殊字符

举报
wild_java_coder 发表于 2022/03/23 12:16:59 2022/03/23
【摘要】 背景:HetuEngine的字符串是用单引号包裹的,当进行字符串的处理,经常会碰到一些特殊字符,比如换行符、制表符、单引号等,本文将举例说明这些场景的处理方式。1.字符串中包含单引号,可以使用单引号对其转义,例如,查询字符串HetuEngine's syntax:hetuengine:default> select 'HetuEngine''s syntax'; _col0 ...

背景:HetuEngine的字符串是用单引号包裹的,当进行字符串的处理,经常会碰到一些特殊字符,比如换行符、制表符、单引号等,本文将举例说明这些场景的处理方式。

1.字符串中包含单引号,可以使用单引号对其转义,例如,查询字符串HetuEngine's syntax:

hetuengine:default> select 'HetuEngine''s syntax';
        _col0        
---------------------
 HetuEngine's syntax 
(1 row)

2.字符串中包含了制表符、换行符,HetuEngine提供了chr(n) 函数,用于返回Unicode编码为n的字符值,那么可以查询这些特殊字符对应的编码值,然后通过字符串拼接获得想要的字符串,示例中,两个HetuEngine中间是制表符,通过查看Unicode编码表,可知制表符对应编码十进制值为9,就可以通过“||”进行字符串拼接:

hetuengine:default> select 'HetuEngine'||chr(9)||'HetuEngine';
        _col0         
----------------------
 HetuEngine     HetuEngine 
(1 row)

3.对于2的情况,还可以通过Unicode字符串表达式,更为直观,一个Unicode字符串是以U&为固定前缀,以4位数值表示的Unicode前需要加转义符,默认转义符为"\",也可以通过UESCAPE来指定转义符:

hetuengine:default> select U&'HetuEngine\0009HetuEngine';
        _col0         
----------------------
 HetuEngine     HetuEngine 
(1 row)

hetuengine:default> select U&'HetuEngine#0009HetuEngine' UESCAPE '#';  
        _col0         
----------------------
 HetuEngine     HetuEngine 
(1 row)

4.查询结果中想要使用单引号包裹字符,可以使用quote函数,示例可以看到对比效果:

hetuengine:default> SELECT 'HetuEninge';
   _col0    
------------
 HetuEninge 
(1 row)

hetuengine:default> SELECT quote('HetuEninge');
    _col0     
--------------
 'HetuEninge' 
(1 row)


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。