oracle基础查询语句

第一章 单表查询

1、查看表结构

desc命令:

 

2、查询列为空的数据

is null 关键字:

 

NUll 不支持加、减、乘、除、大小比较、相等比较,否则只能为空。

3、将null 转换为指定的值

coalesce 关键字:


还支持多个字段,将首先显示不为空的字段:

 

当然也可以用nvl,但是nvl只支持两个参数:

 

4、在where子句后面使用别名

 

注意:引用别名时,千万不要忘记嵌套一层,因为这个别名在select之后才有效。否则会提示:

 

5、拼接列

 

还可以通过拼接的方式来动态生成SQL

6case when....then  when.....then  slse... end as 的使用方式

 

 

还可以用于统计人数:

 


7、取出指定行的数据

 

 

8、从表中随机返回n条记录

使用dbs_random.value()来对数据进行随机排序:

 

 


order by number 的意思是根据第几列排序,8表示根据第8列排序。

 

第二章 给查询结果排序

1、以指定次序返回查询结果

 

还有一种简单排序方式:


上面的这个数字代表的是第几列。注意用数字来代替列的位置只适用于order by 语句,其他的地方都不能用

2、按多个字段排序

 

 

先按照一列排序所有的,在排序列相同的数据中,在根据另一个数据排序。

3、按照子串排序

 

4、创建视图和查询视图

 

如果查询出来的结果要按后面的ename排序,那么该怎么做呢?只有把ename都取出来。


上面的’-’就是代表空吧,或者说null,将不要的东西都翻译过来。

5、处理排序空值(nulls first 或者 nulls last

默认空值排列在后面:

 

将空值排列在前面:

 


6、根据条件取不同列中的值来排序

根据特殊的条件来排序,比如1--100中的数据,当然是散乱的数据,如果我要将30-50的数字排序在前面,余下的数据再排列在后面。

 

就是创建一列虚的数据,先按照虚列数据来排序排序就对了。

也可以不显示这一列虚的数据:

 

第三章 操作多个表

1union all 与空字符串

union all 通常用于合并多个结果集

 

可以看见如果列不够时,可以用null来填充。在oracle中空字符串常常相当于null,为什么不说null相当于空字符串呢?

因为空字符串是varchar2类型,这与null可以是任何的类型不相同,所以他们是不等价的。

 

2、union or

Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;
Union all:对两个结果集进行并集操作,包括重复行,不进行排序;
decode(字段或字段的运算,值1,值2,值3)当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3

猜你喜欢

转载自blog.csdn.net/u013441805/article/details/80519797