好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

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

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

方式1:

?

1

2

SELECT NAME FROM TEST

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

方式2

?

1

2

SELECT NAME FROM TEST

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

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

方式1:

?

1

2

SELECT NAME FROM TEST

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

方式2:

?

1

2

SELECT NAME FROM TEST

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

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

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

?

1

2

SELECT NAME FROM ESCMOWNER.TEST

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

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

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

?

1

2

SELECT * FROM TEST WHERE

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

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

?

1

2

SELECT * FROM ESCMOWNER.TEST

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

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

?

1

2

SELECT * FROM ESCMOWNER.TEST

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

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

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

?

1

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

补充:下面看下Oracle的单表查询语句

使用Oracle 数据库的测试表单:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

--单表查询数据  语法 select (查询) * 所有 /查询的字段,多个字段 ,隔开  from (来自) 表名称

--查询所有员工的信息

select * from scott.emp;

select * from dept;

--查询所有员工的编号,姓名和职位  指定字段名查找数据

select empno,ename,job from emp;

--查询所有员工的编号,姓名和年薪

select * from emp;

select empno,ename,sal*12 from emp;

--通过查询使用运算符不会对原有数据进行修改

--只是在查询的时候进行了运算,展现的是一个新的数据表格

select empno,ename,sal*12 from emp;

--计算1+1?  提供了一个虚拟表,dual

-- dual是虚表,专用于测试使用

-- 可以给字段取别名

select 1+1 AS result1 from dual;

select sysdate AS DATES from dual;

--取别名 sal*12 改成income as 可以省略

--''单引号代表 字符串 " "取别名时用,如果别名包涵特殊字符 使用""包起来

select empno,ename,sal*12 "年薪" from emp;

--查询所有的用户的姓名,职位和薪资,以如下方式进行显示

--姓名:xxx ,职位:xxx ,薪资:xxx

--字符串 拼接使用 || 连接 不是+

select '姓名:' ||ename|| ' ,职位:' ||job|| ' ,薪资:' ||sal info from emp;

--想展示所有的职位,不能有重复的  排除重复

--去重复 使用 distinct

select distinct job,ename from emp;

--排序 升序 和 降序 ( asc desc )

--排序需要指定排序的字段  默认是 升序 asc

--可以对数值 日期 字符串类型进行排序

select * from emp order by job asc ;

--按薪水降序,如果薪水相同,再将老员工排到后面(日期降序)

--按照多个字段进行排序,order by 只要写一次 ,后续的排序字段使用,隔开

select empno,ename,hiredate,sal from emp order by sal desc , hiredate desc ;

--查询所有员工编号,姓名,年薪,按照年薪排序

--排序可以用 别名

select empno,ename,sal*12 income from emp order by income desc ;

总结

以上所述是小编给大家介绍的ORACLE中关于表的一些特殊查询语句,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!

原文链接:https://www.cnblogs.com/kerrycode/archive/2018/11/22/9999722.html

查看更多关于ORACLE中关于表的一些特殊查询语句的详细内容...

  阅读:22次