含义解释: decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值)
该函数的含义如下:
IF 条件=值1 THEN RETURN(翻译值1)ELSIF 条件=值2 THEN RETURN(翻译值2) ......ELSIF 条件=值n THEN RETURN(翻译值n)ELSE RETURN(缺省值)END IF
decode(字段或字段的运算,值1,值2,值3)
这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3 当然值1,值2,值3也可以是表达式,这个函数使得某些sql语句简单了许多
解释: sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1
用法示例:
select id,sign(id-2) from t_decode;
截图效果:
在字段id前边补字段0 长度为2
select lpad(id,2,0) from t_decode;
创建测试表t_decode,并插入测试数据
//创建表,插入数据,查询create table t_decode( id integer, name varchar2(10));//插入数据insert into t_decode values (1,'a');insert into t_decode values (2,'b');insert into t_decode values (3,'c');insert into t_decode values (4,'a');
数据样式
select id,name,decode(id,1,'第一个',2,'第二个',3,'第三个','没有') new_id from t_decode;
判断表中id大小并根据大小划分不同范围 (-,2) low [2,4) mid [4,-] high
select id,name, decode(sign(id - 4),1,'high id',0,'high id','-1', decode(sign(id - 2),1,'mid id',0,'mid id',-1,'low id'))from t_decode;
-- 比较大小select decode(sign(100-90),-1,100,90) from dual;
判断name中是否含有a?
select id,name,decode(instr(name,'a'),0,'不含有a','含有a') as info from t_decode;
注意:decode相当于:case when then else end语句
select sum(decode(name,'a',id,0)) id_1,sum(decode(name,'b',id,0)) id_2,sum(decode(name,'c',id,0)) id_3 from t_decode;
添加测试:
select decode(name,'a',id,0) id_1, decode(name,'b',id,0) id_2, decode(name,'c',id,0) id_3 from t_decode;-- 相等于:case when then else endselect case name when 'a' then id else 0 end as id_1, case name when 'b' then id else 0 end as id_2, case name when 'c' then id else 0 end as id_3 from t_decode;
结合Lpad函数,如何使主键的值自动加1并在前面补0select lpad(decode(count(id),0,1,max(to_number(id)+1)),14,'0') new_id from t_decode;
拆分详细讲解:
select * from t_decode
select lpad(id,2,0) from t_decode
select to_number(id) from t_decode;
select max(to_number(id)+1) from t_decode;
select decode(count(id),0,1,max(to_number(id)+1)) from t_decode;
select lpad(decode(count(id),0,1,max(to_number(id)+1)),14,‘0’) new_id from t_decode;
160064.html
本文由 贵州做网站公司 整理发布,部分图文来源于网络,如有侵权,请联系我们删除,谢谢!
SEO小店网站优化 能带来大量精准流量的网站才是好网站,小店网络公司SEO优化推广可以为企业网站带来大量的有效流量。 ...
汉寿网站排名快速提升 汉寿网络公司快速提升企业网站排名,通过网站优化推广,让汉寿企业网站在搜索引擎的排名长期稳定。 ...
SEO张家界网站优化 能带来大量精准流量的网站才是好网站,张家界网络公司SEO优化推广可以为企业网站带来大量的有效流量。 ...
渤海银行是哪里的银行?这是天津的一家银行。渤海银行全称渤海银行股份有限公司,成立于2005年12月31日。是一家全国性股份制商业银行,总行位于天津市河东区海河东路218号。渤海银行注册资本144.5亿元。渤海银行是第一家总部设在天津的商业银行,也是第一家在初创阶段引入境外战略投资者的中资商业银行。2019年,在英国《银行家》杂志发布的“全球银行1000强”排名中,渤海银行排名攀升,全球银行排名第1...
台球裁判薪水多少?台球裁判的平均年薪应该在10万欧元左右。台球裁判的工资也是分等级的,世界级的,国家级的,相差好几倍!(注:国内外台球裁判工资换算以欧元计算,与球员一致。这是我个人的看法。)以下是台球裁判员的选拔程序:台球裁判从三级裁判开始,达到国际。获得推荐人 s卡需要国家体育部门审核。获得台球裁判的主要条件如下:1.你需要一定的切球经验,裁判经验的要求根据裁判的水平不同而不同。想要通过国家二级...
为什么普通火车票有怀化南站与怀化站?怀化南站以前是高铁站,只用高铁。今年以来,很多普通列车也进站了,所以买票的时候会显示怀化站和怀化南站。但是两站之间的交通很方便,有直达车。所以唐 不要太担心换台。此外,怀化南站也有直达怀化 的下属县。为什么普通火车票有怀化南站与怀化站?因为怀化南站是高铁站,怀化站是普通列车。怀化南站创办于2012年10月;2013年6月完成主体工程建设;2014年12月竣工,正...