代码改变世界

ORACLE中关于表的一些特殊查询语句

2018-11-22 10:57  潇湘隐者  阅读(1693)  评论(0编辑  收藏  举报

1: 如何判断字段的值里面:那些数据包含小写字母或大小字母

 

 

判断字段NAME的值里面有小写字母的记录

 

方式1:

 

SELECT NAME FROM TEST

WHERE regexp_like(NAME,'[[:lower:]]');

 

方式2

SELECT NAME FROM TEST

WHERE regexp_like(NAME,'[a-z]');

 

 

判断字段NAME的值里面有大写字母的记录

 

 

方式1:

 

SELECT NAME FROM TEST 

WHERE regexp_like(NAME,'[[:upper:]]');

 

 

方式2:

 

SELECT NAME FROM TEST

WHERE regexp_like(NAME,'[A-Z]');

 

 

 

 

2: 如何判断字段里面的值里面包含特殊字符

 

 

 

例如,我想找出表TEST的字段NAME里面包含特殊字符&的相关记录

 

SELECT NAME FROM ESCMOWNER.TEST 

WHERE regexp_like(NAME,'[&]');

 

 

3: 如何判断字段里面的值前面或后面有空格

 

 

1:字段前面或后面存在空格的记录信息:

 

SELECT * FROM TEST WHERE

length(NAME) > length(trim(NAME))

 

 

2:字段值前面存在空格的记录信息:

 

 

SELECT * FROM  ESCMOWNER.TEST 

WHERE LENGTH(LTRIM(NAME)) < LENGTH(NAME);

 

3:字段值后面存在空格的情况:

 

SELECT * FROM  ESCMOWNER.TEST 

WHERE LENGTH(RTRIM(NAME)) < LENGTH(NAME);

 

 

 

4:如何判断字段里面的值里面包含空格

 

 

一直以来,以为判断字段里面包含空格(空格位于任意位置)是一件特难、特麻烦的事情,但是在ORACLE的正则表达式函数REGEXP_LIKE面前,一切不在话下。

 

SELECT * FROM  TEST  WHERE REGEXP_LIKE(NAME, '( )+');

 

 

 

 

后续如有遇到一些特殊查询SQL,会统一总结在这一篇文章里面,后续会继续追加相关内容!