Oracle查询中空值转换,模糊查询,随机查询讲解

平常工作和学习过程中总结的oracle数据的些许知识。

一. 查询中空值转换,模糊查询,随机查询

基本的查询语法不是此文重点,在此只是将工作中常用的语法和函数和示例托举而出。

1. 空值转换函数

在字段的查询和简单运算中,经常会遇到字段为空的现象,需要对空做简单处理,oracle提供两种空值转换函数:nvl() 和coalesce()。

nvl()函数

语法:nvl(字段,表达式)

如果字段为空值,nvl返回值为表达式的值,否则返回字段的值。该函数的目的是把一个空值(null)转换成一个实际的值,空值转化要求替换的数值要匹配原字段的数据类型。

nvl(comm,0),若comm是null则用0替换;

coalesce函数

语法:coalesce(表达式1,表达式2,表达式3…)

coalesce与nvl的区别:

coalesce可以有多个参数,意思是取第一个不为空的值,而nvl只能有两个参数,只对第一个参数做空值处理。

2.模糊查询

oracle中模糊查询常用的就两个字符(_和%)

_: 匹配一个字符,%: 匹配多个字符;需要注意的是在遇到查找内容含有_,%等特殊字符的,需要做转义。

//查找所有名字中含有abc的人员信息
select * from user where username like '%abc%';

//查找名字中第二个字符开始以abc开始的人员信息
select * from user where username like '_abc%';

   //查找含有_abc,使用\转义
select * from user where username like '\_abc' escape '\';

//查找名字中含有'\'的  
   select * from user where username like '%\\%' escape '\'; 

3. 随机查询 dbms_random.value()函数

dbms_random是一个可以生成随机数值或者字符串的程序包。

这个包有initialize()、seed()、terminate()、value()、normal()、random()、string()等几个函数,但value()是最常用的.

sql> select dbms_random.value() from dual;
     dbms_random.value()
    -------------------
     0.265729284748573

-value()的用法常用的有两种

没有参数,会返回范围从0.0到1.0的值,但不包括1.0,如下: value带有两个参数,会返回两个参数之间的值,没有顺序之分,将会生成下限到上限之间的数字,但不包含上限,如下:

常用的就是随机获取n条记录:order by dbms_random.value();

    select dbms_random.value() from dual  
    结果为:0.265729284748573

    select dbms_random.value(1,7) from dual  

    select empno,ename from (select * from emp order by dbms_random.value()) where rownum <=3
(0)
上一篇 2022年3月22日
下一篇 2022年3月22日

相关推荐