oralce中特殊字符的查询

数字 2   的ascii是 50  于是使用以下sql能够查询之

select * from  t  where t.column1 like ''||char(50)||''    同理

'||chr(50)||'   

 

oracle中去掉文本中的换行符、回车符、制表符小结

一、特殊符号ascii定义
制表符 chr(9)
换行符 chr(10)
回车符 chr(13)

二、嵌套使用repalce,注意每次只能提交一个符号,如先回车再换行
          select REPLACE(gg, chr(10), '') from dual

    要注意chr(13) | | chr(10) 此类结合使用的情况比较多,回车换行在notepad中是比较好看点的,所以要考虑此种情况
          select translate(string,chr(13)||chr(10),',') from dual;

 select * from org o where o.orgname like '%'||chr(13)||'%'
 or o.orgname like '%'|| chr(10 )||'%' or o.orgname like '%'|| chr(9) ||'%'

 

 

 

例如我在处理数据时发现如下的数据

select distinct summary,replace((substr(summary,1,2)),chr(10),'') connect_column from prioryear_adam

 

 

取前两个字符正好取到【换行10】【回车13】

 

 

 这里的summary  看着是以空格开头的,但是复制这个字段的内容才发现,是以换行符开始,换行符+空格+2004+句号+3    这样的一个神奇的数据

那么得处理之

select summary,replace(replace(substr(summary,1,2),chr(13),' '),chr(10),' ') connect_column from prioryear_adam t where t.summary like '%'||chr(13)||'%';

就可以把前边得换行和回车给替换成两个空格了

posted @ 2020-05-19 16:22  一年变大牛  阅读(614)  评论(0编辑  收藏  举报