oracle01

作者:计算机专家

摘自:

利用nullif函数

01-基本的查询语句

摘要:
下文介绍sql server中,sql脚本幸免出现除零破绽百出的方式分享

nullif函数有七个参数,定义如下:

A:一些限令


NULLIF( expression , expression )

  1. sqlplus sys/sys@192.168.22.220:1521/orcl as sysdba;
  2. conn scott/123456@192.168.22.210:1521/orcl; 从方今客户更改来scott客商
  3. show user; 呈现当前用户名
  4. show linesize; 展现的行宽
  5. set linesize 150; 设置行宽
  6. col ename for a8; col sal for 9999;设置列ename为字符长度为8个长度;设置列sal为4位数字;
  7. c 命令字符替换,如: c /form/from 只怕c!form!from
  8. host cls;清屏幕
  9. spool d:/1.sql 将指令写入到1.sql文本中。spool off终止写入文件中。

在各类业务类别开辟中,平日会遇上巳零的荒唐,下文共享了三种管理格局:
方法1: case when end 

其效果正是:即便七个钦点的表明式相等,就赶回null值。

B:sql优化原则

declare @a int ---分子
declare @b int ---分母
select  case  when @b=0 then NULL else @a/@b end  as [a除以b]

看一演示:

  1. 询问的时候尽量选拔列名;如:select ename,sal from emp; 
  2. 分组查询未有多行函数(聚合函数),要是利用过滤,思量动用where照旧having
  3. 在子查询和多表查询之间接选举择,尽量选择多表查询
  4. 在集中运算中,要是union 和union all都得以,思索动用union all 。因为union须要去掉重复的。
  5. 可以见到不要采纳集合运算就无须采用会集运算。

select nullif(0,0)

留意:精晓oracle的例行命令,在学习进程中总括一些优化原则;

方法2:nullif
nullif(表达式A,表达式B)
—-尽管表达式A不等于表达式B,则赶回表达式A
—-反之重返NULL 

运作结果:null

02-空值和外号

 

作者们精通,null与此外数进行此外运算,其结果都十分null,利用这一点,我们得以将方面的sql改写为:

A:管理列值为null

declare @a int ---分子
declare @b int ---分母
select @a/nullif(@b,0) as [a除以b]

declare @a int;

oracle中的列值为null做四则运算结果都为null。管理形式:nvl(null,0) 

 

declare @b int;

B:判别列值为null

set @a=10

oracle中判别叁个列值为null使用is null 只怕is not null

set @b=0

C:给多个列取贰个小名能够使用as 抑或轻巧as

select @a/nullif(@b,0)

     select empno as “职员和工人编号” , ename 员工姓名 from emp;

其运行结果自然为null了。

     注意:外号须要动用“”,或然不加“”。外号高级中学级有空格的内需“”;

再选取isnull函数,大家就足以兑现当@b=0的时候,结果重回1的供给了。最后的sql改写如下:

不能够使用单引号;

declare @a int;

D:distinct 抽出前边的有着列独一值

declare @b int;

select distinct job,deptno from emp;这里的distinct成效于前边的保有的列。

set @a=10

            select distinct(job) from emp;能够将加()

set @b=0

E:|| 和concat() 将字符连接起来

select isnull(@a/nullif(@b,0),1)

select concat(‘hello’,’world’) from dual;使用concat()前面需求加表。mysql并从严根据sql1986正经;

OK,二种艺术介绍完毕,相对于艺术一,作者更推荐我们利用办法二,因为方法二的代码更简省。

            select ‘hello’ || ‘world’ from dual;

(假使有心上人对isnull函数不打听的话,这里能够解释一下。

         注意:字符串使用单引号‘’,不能够利用双引号“”,使用双引号的是别称。

isnull的概念如下:

dual是伪表;

isnull(参数1,参数2)

03-SQL和iSQLPLUS

本文由杏彩发布,转载请注明来源

关键词: