oracle之关于字段中含有空格的处理

select length(sfz),sfz from dw_2;
8    292882  
6    281001
7    27278 1
18    320122198701xxx
6     9210k
SELECT * FROM dw_2 WHERE REGEXP_LIKE(sfz, '( )+'); --包含了所有含有空格的列
SELECT * FROM dw_2 WHERE length(sfz) > length(trim(sfz)); --没有检索出中间含有空格的列
SELECT * FROM dw_2 WHERE substr(sfz,-1)=' '; --只检索出字段尾有空格的列

SELECT INSTR(sfz,' ', 1, 1),sfz FROM dw_2 WHERE REGEXP_LIKE(sfz, '( )+'); --检索出出现空格所在的字符串位置
SELECT INSTR(sfz,' ', 1, 1),sfz,substr(sfz,0,INSTR(sfz,' ', 1, 1)) FROM dw_2 WHERE REGEXP_LIKE(sfz, '( )+');
SELECT INSTR(sfz,' ', 1, 1),sfz,substr(sfz,0,INSTR(sfz,' ', 1, 1)),substr(sfz,INSTR(sfz,' ', 1, 1)+1,100) FROM dw_2 WHERE REGEXP_LIKE(sfz, '( )+');

在工作中遇到了一些字符串中含有空格的处理小结,望自己能时常记住!

Not in 对null敏感,这意味着not in后面的子查询里一旦有null值时则整个sql执行结果就会为null,此时可在not in 后面子句中加上对应字段 is not null,或者用not exists来查询

 

 
 

posted on 2021-07-12 22:34  小杜的学习天地  阅读(916)  评论(0编辑  收藏  举报

导航