提供了很多内置函数,其中decode函数怎么使用呢?这里一起探讨下:oracle decode函数使用方法?如果对您有帮助,请帮忙点赞,谢谢操作系统:Windows 7 旗舰版管理工具:PL/SQL10

如何使用Oracle decode函数

例如:SELECTMD5(‘abc123456’);返回:0659c7992e268962384eb17fafe88364

加密:encode(“加密字符串”,”密钥”)。例如:SELECT ENCODE(‘abc00000′,’zzz’);返回:@�-2@=�9

解密:decode(“已经加密字符串”,”密钥”)。例如:SELECT DECODE(ENCODE(‘abc00000′,’zzz’),’zzz’);返回:abc00000

加密:aes_encrypt(“加密字符串”,”密钥”)。 这个函数加密程度更高。

例如:SELECT AES_ENCRYPT(‘abc00000′,’zzz’)返回:Ӭ8L�����nF H�

解密:aes_decrypt(“已经加密字符串”,”密钥”)。例如:SELECT AES_DECRYPT(AES_ENCRYPT(‘abc00000′,’zzz’),’zzz’);返回:abc00000

oracle decode函数使用方法

PL/SQLOracle数据库首先,讲一下decode的基本语法,decode使用起来非常的灵活,格式如下:decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值),中间的值可以无限写,类似于 case 条件 when 值1 then 返回值1 when 值2 then 返回值2 default 缺省值效果如下所示

有了这个函数,就免去了我们在写sql的时候需要写很多个case when,非常省事,以上sql如果用case when 写的话如下所示,效果是一样的。

为了方便大家的理解,我这里创建个表,插入几条数据,来看看实际的效果。

sql如下:create table Test(NAME varchar(10),SEX varchar(10),DEPT varchar(10));

insert into Test values(‘张三’,’M’,’001′);、

insert into Test values(‘李四’,’F’,’001′);、

insert into Test values(‘王五’,’M’,’002′);、

insert into Test values(‘赵六’,’F’,’003′);insert into Test values(‘孙七’,’F’,’004′);

如果我们想取出来这些数据,同时把性别和部门的编号改成汉字,通常的写法是通过case when 实现,如下所示:select NAME,case SEX when ‘M’ then ‘男’ when ‘F’ then ‘女’ end Sex,

case DEPT when ‘001’ then ‘A部门’ when ‘002’ then ‘B部门’ when ‘003’ then ‘C部门’ else ‘默认部门’ end Dept 、

from Test;

是不是很麻烦,需要写两行sql,如果换成decode就简单很多,一行sql就可以了。

select NAME,decode(SEX,’M’,’男’,’F’,’女’),decode(DEPT,’001′,’A部门’,’002′,’B部门’,’003′,’C部门’,’默认部门’) from Test;

以上就是decode的详细用法,希望对你有所帮助。

oracle decode函数使用方法

Oracle数据库用法一: 使用decode()判断字符串是否一样

decode(value, if 条件1,then 值1,if 条件2,then 值2,…,else 其他值)

Sql测试:select aac001,decode(aac001,’0000000001′,’张三’,’0000000002′,’李四’,’others’) as name from ac01 where rownum<=1;

输出结果:0000000002,李四

用法二: 使用decode()比较大小Select decode(sign(var1-var2),1,var1,var2) from dual;

(注释: sign()函数根据某个值是0、正数、负数,分别返回0、1、-1)

Sql测试:Select decode(sign(100-90),1,100,90) from dual;

输出结果 :100

解释: 100-90=10>0则sign()函数返回1,decode()函数取值var1为100

Sql测试:Select decode(sign(100-90),-1,100,90) from dual;

输出结果:90

100-90=10>0则sign()返回1,decode()函数取值var2为90

用法三: 使用decode()函数分段

假设工资大于10000为高薪,工资介于5000到10000为中等,工资小于5000位低薪

Sql测试:Select ename,sal,decode(sign(sal-10000),1,’高薪’,0,’高薪’,-1,decode(sign(sal-5000),1’中等’,0,’中等’,-1,’低薪’))) from ac01;

输出结果:李明 12000 高薪张三 5000 中等王五 3000 低薪

decode()函数还有其他用法,但用的不多,具体可以查看官方手册

更多网友回答:

答:when函数来替代;MySQL数据库的decode函数是解密函数,它是加密函数encode的反函数,与ORACLE数据库里decode函数实现的功能完全不同。ORACLE数据库里decode函数相当于MySQL数据库里的case when函数,只是前者看起来更加紧凑。

答:双向加密段数据通密钥加密能够由知道密钥解密mysql两函数支持种类型加密别叫做ENCODE()DECODE()面简单实例:mysql> INSERT INTO users (username,

答:使用DECODE函数可以避免重复扫描相同记录或重复连接相同的表。 (7) 整合简单,无关联的数据库访问: 如果你有几个简单的数据库查询语句,你可以把它们整合到一个查询中(即使它们之间没有关系) (8) 删除重复记录: 最高效的删除重复记录

答:表示如果value等于if1时,DECODE函数的结果返回then1,,如果不等于任何一个if值,则返回else。亦即:decode(条件,值1,翻译值1,值2,翻译值2,值n,翻译值n,缺省值)延伸用法:1。 与sign函数联用比较大小:Sql代码 s

答:我在ORACLE里就不用decode 大多都是用Case when then end,虽然复杂一些,但是毕竟标准T-SQL语法,移植性强。

答:AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 INSERT INTO tet(title) VALUES(ENCODE(‘数对密码字段进行’,’abc’));SELECT * FROM tet;SELECT DECODE(title,’abc’) from tet;本人在linux上运行结果正常。仅供参考

答:保密关键字的长度为 128 比特,不过你可以通过改变源而将其延长到 256 比特。我们选择了 128 比特的原因是它的速度要快得多,且对于大多数用途而言这个保密程度已经够用。b) 函数DECODE(crypt_str ,pass_str )函数使用说

答:mysql没有这个函数, 却可以用其他的方式来实现这个decode函数的功能。

答:(6) 使用DECODE函数来减少处理时间:使用DECODE函数可以避免重复扫描相同记录或重复连接相同的表。(7) 整合简单,无关联的数据库访问:如果你有几个简单的数据库查询语句,你可以把它们整合到一个查询中(即使它们之间没有关系

答:如果你 的mysql版本是5。6。1以上的,可以试一下 SELECT FROM_BASE64(字段); 这样就可以查出来了。如果不是你要查出来用其他语音来,比如php 的base64_decode 这个函数。

答:

发表评论

后才能评论