oracledecode空值,常用函数--decode的使用,NULL值的意思

更新时间:2023-07-07 16:55:55 阅读: 评论:0

oracledecode空值,常⽤函数--decode的使⽤,NULL值的意思语法:
逻辑:
decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)
如果 条件值与值1相=,就返回 翻译值1
如果 条件值与值2相=,就返回 翻译值2
如果 条件值与值N相=,就返回 翻译值N
说明:返回值的数据类型就是翻译值的数据类型,缺省值可以省略,省略后返回NULL
DECODE适合的数据类型:numeric types (NUMBER, BINARY_FLOAT, or BINARY_DOUBLE) or character types
限制:arch列表不能超过255个值
⽤法样例:
1.⽐较⼤⼩
lect decode(sign(变量1-变量2),-1,变量1,变量2) from dual; --取较⼩值
dish
sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1
例如:
变量1=10,变量2=20
则sign(变量1-变量2)返回-1,decode解码结果为“变量1”,达到了取较⼩值的⽬的。
2.⼀般⽤法
SELECT product_id,
你最珍贵英文DECODE (warehou_id, 1, 'Southlake',
2, 'San Francisco',
3, 'New Jery',
4, 'Seattle',
'Non domestic')
"Location of inventory" FROM inventories
WHERE product_id < 1775;
cylinder
3.表,视图结构转化
现有⼀个商品销售表sale,表结构为:
month    char(6)      --⽉份
ll    number(10,2)   --⽉销售⾦额
现有数据为:
200001  1000
200002  1100
200003  1200到达的英文
200004  1300
200005  1400
200006  1500
200007  1600
200101  1100
200202  1200
200301  1300
想要转化为以下结构的数据:
ampere
year   char(4)      --年份
month1  number(10,2)   --1⽉销售⾦额
month2  number(10,2)   --2⽉销售⾦额
month3  number(10,2)   --3⽉销售⾦额oicq是什么
month4  number(10,2)   --4⽉销售⾦额
month5  number(10,2)   --5⽉销售⾦额
month6  number(10,2)   --6⽉销售⾦额
month7  number(10,2)   --7⽉销售⾦额
month8  number(10,2)   --8⽉销售⾦额
month9  number(10,2)   --9⽉销售⾦额
month10  number(10,2)   --10⽉销售⾦额
month11  number(10,2)   --11⽉销售⾦额
month12  number(10,2)   --12⽉销售⾦额
结构转化的SQL语句为:
create or replace view
v_sale(year,month1,month2,month3,month4,month5,month6,month7,month8,month9,month10,month11,month12) as
lect
substrb(month,1,4), --year
sum(decode(substrb(month,5,2),'01',ll,0)), --month1
sum(decode(substrb(month,5,2),'02',ll,0)), --month2
sum(decode(substrb(month,5,2),'03',ll,0)), --month3
sum(decode(substrb(month,5,2),'04',ll,0)), --month4
......
sum(decode(substrb(month,5,2),'12',ll,0)), --month12
====================================================================================问:什么是NULL?
答:在我们不知道具体有什么数据的时候,也即未知,可以⽤NULL,
我们称它为空,ORACLE中,含有空值的表列长度为零。
orACLE允许任何⼀种数据类型的字段为空,除了以下两种情况:
1、主键字段(primary key),
2、定义时已经加了NOT NULL限制条件的字段
说明:
1、等价于没有任何值、是未知数。
2、NULL与0、空字符串、空格都不同。
3、对空值做加、减、乘、除等运算操作,结果仍为空。
4、NULL的处理使⽤NVL函数。
5、⽐较时使⽤关键字⽤“is null”和“is not null”。
6、空值不能被索引,所以查询时有些符合条件的数据可能查不出来,
count(*)中,⽤nvl(列名,0)处理后再查。
7、排序时⽐其他数据都⼤(索引默认是降序排列,⼩→⼤),
所以NULL值总是排在最后。
使⽤⽅法:
在线读英语单词SQL> lect 1 from dual where null=null;
没有查到记录
SQL> lect 1 from dual where null='';
没有查到记录
SQL> lect 1 from dual where ''='';
改善英文
没有查到记录
SQL> lect 1 from dual where null is null;
1
---------
1
SQL> lect 1 from dual where nvl(null,0)=nvl(null,0);
1
加盟店 英文---------
1
对空值做加、减、乘、除等运算操作,结果仍为空。
小学关联词大全SQL> lect 1+null from dual;
SQL> lect 1-null from dual;
SQL> lect 1*null from dual;
SQL> lect 1/null from dual;
查询到⼀个记录.
注:这个记录就是SQL语句中的那个null
设置某些列为空值
update table1 t 列1=NULL where 列1 is not null;[注意:]查询空值记录:
SQL> lect * from hrtest1 where salary=null;
no rows lected
SQL> lect * from hrtest1 where salary is null; FIRST_NAME LAST_NAME SALARY
-------------------- ------------------------- ----------
1 2
SQL>

本文发布于:2023-07-07 16:55:55,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/170139.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:空值   数据   数据类型   变量   记录   结构
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图