SQL 查询字段包含特殊符号的数据

  1. SQL 查询字段中包含单引号
    查询的时候输入两个单引号就转义了 ,chr(39) 表示单引号、chr(40)表示双引号
    eg: select * from XX.TB_NAME where COLUMN_NAME like '%''%';
    eg:select * from XX.TB_NAME where COLUMN_NAME like '%'|| CHR(39)||'%'

  2. SQL 查询字段包含回车或换行符的数据
    eg:select * from TB_NAME where COLUMN_NAME like '%'|| CHR(10)||'%' or COLUMN_NAME like CONCAT("%",CHR(13),"%")

  3. 备注:数据库中,CHR(13)表示回车符;CHR(10)表示换行符;CHR函数里的数字是字符的ASCII码;select ASCII(' —— ') from dual;
    移除换行符:REPLACE(COLUMN_NAME ,CHR(10),'')
    移除回车符:REPLACE(COLUMN_NAME ,CHR(13),'')
    数据进行处理时,要将表中存在换行的数据进行去除换行变成一行,例如导出数据 或者往 impala传数据,若源表数据中存在换行 会导致数据错位
    eg: REPLACE(REPLACE(REPLACE(COLUMN_NAME , CHR(10) , '') , CHR(13) , '') , ' ' ' ,'')

  4. SQL 查询字段长度用 length
    可以用length 查询出表里该字段的最长长度 max(length(COLUMN_NAME)),也可以查询字段长度大于某一值有多少条记录
    eg: select * from XX.TB_NAME where length(COLUMN_NAME) > 19;

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐