c#
支持有decode函数
DECODE函数,是ORACLE公司的SQL软件ORACLE
PL/SQL所提供的特有函数计算方式,以其简洁的运算方式,可控的数据模型和灵活的格式转换而闻名。
函数介绍:
DECODE函数是ORACLE
PL/SQL的功能强大的函数之一,目前还只有ORACLE公司的SQL提供了此函数,其它数据库厂商的SQL实现还没有此功能。DECODE有什么用途呢?
先构造一个例子,假设我们想给智星职员加工资,其标准是:工资在8000元以下的加20%;工资在8000元或以上的加15%,通常的做法是,先选出记录中的工资字段值
--->select
salary
into
var-salary
from
employee,然后对变量var-salary用if-then-else或
case
when
then
else
end之类的流控制语句进行判断。
如果用DECODE函数,那么我们就可以把这些流控制语句省略,通过SQL语句就可以直接完成。如下:
select
decode(sign(salary
-
8000),1,salary115,-1,salary12,salary115)
from
employee
是不是很简洁?
DECODE的语法:DECODE(value,if1,then1,if2,then2,if3,then3,,else),表示如果value等于if1时,DECODE函数的结果返回then1,,如果不等于任何一个if值,则返回else。初看一下,DECODE
只能做等于测试,但刚才也看到了,我们通过一些函数或计算替代value,是可以使DECODE函数具备大于、小于或等于功能。
DECODE
中的if-then-else逻辑:
在逻辑编程中,经常用到If
–
Then
–Else
进行逻辑判断。在DECODE的语法中,实际上就是这样的逻辑处理过程。它的语法如下:
DECODE(value,
if1,
then1,
if2,then2,
if3,then3,
else
)
Value
代表某个表的任何类型的任意列或一个通过计算所得的任何结果。当每个value值被测试,如果value的值为if1,Decode
函数的结果是then1;如果value等于if2,Decode函数结果是then2;等等。事实上,可以给出多个if/then
配对。如果value结果不等于给出的任何配对时,Decode
结果就返回else
。
需要注意的是,这里的if、then及else
都可以是函数或计算表达式。
DECODE
的简单例子:
Oracle系统中就有许多数据字典是使用decode
思想设计的,比如记录会话信息的V$SESSION数据字典视图就是这样。我们从《Oracle8i/9i
Reference》资料中了解到,当用户登录成功后在V$SESSION中就有该用户的相应记录,但用户所进行的命令 *** 作在该视图中只记录命令的代码(0—没有任何 *** 作,2—Insert…),而不是具体的命令关键字。因此,我们需要了解当前各个用户的名字及他们所进行的 *** 作时,要用下面命令才能得到详细的结果:
select
sid,serial#,username,
DECODE(command,
0,’None’,
2,’Insert’,
3,’Select’,
6,’Update’,
7,’Delete’,
8,’Drop’,
‘Other’)
command
from
v$session
where
username
is
not
null;
例子2:
DECODE(VALUE,'0','1','2')
若value为0,则为1,否则为2
decode函数相当于一条件语句(if)它将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式。当然,如果未能与任何一个实参序偶匹配成功,则函数也有默认的返回值。区别于sql的其它函数,decode函数还能识别和 *** 作空值
其具体的语法格式如下:
decode(input_value,value,result[,value,result…][,default_result]);
matlab用encode和decode函数
答:1 decode:其它码–>unicode decode 的作用是将其他编码的字符串转换成 unicode 编码,如 str1decode(‘gb2312’),表 示将gb2312 编码的
2 encode:unicode–>其它码 encode 的作用是将 unicode 编码转换成其他编码的字符串,如 str2encode(‘gb2312’),表 示将unicode 编码的字符
CSDN编程社
encode() decode() 编码解码函数 - wendy587436的博客 - CSDN博客 - matlab
2018年8月30日print(bs) s1 = bsdecode('utf-8')# 解码成unicode编码print(s1)
mysql的decode函数与oracle的decode函数是不一样的,mysql的decode函数是解密函数,与之对应的是encode函数。
encode加密函数
decode解密函数
select encode('ddss','123');第一个参数为加密字符串、第二个参数为加密密码
MySQL 57中不推荐使用encode、decode函数,会在后续版本中删除,不再使用。
mysql中执行help encode或 functions,查看帮助信息。
Oracle提供了一些逻辑判断函数,这些函数可以在查询中使用。
1 nvl :针对空值进行测试
函数原型为:NVL(testValue,SubstituteValue)
常见的用法是 Select max(score) From SC Where Name=‘Jerry’
有时max(score)为空,也就是说Jerry并没有考试记录,这时我们用"No Record"标注一下:
Select NVL(max(score),"No Record") From SC;
还有一个NVL2函数跟其相似,函数原型为: NVL(testValue,SubValue1,SubValue2)
NVL2函数实现的是若testValue为NULL,返回SubValue1,否则返回SubValue2。
2Decode函数
Decode函数的原型为: Decode(testValue, if1, then1, if2,then2else)
针对testValue进行测试,若testValue等于if1则返回then1,若testValue等于if2则返回then2,若都没有返回,刚返回else 示例如下:
若我们用Decode可以这样实现:
SELECT class, course,
DECODE (student,
'A', 'Anco',
'B', 'Bily',
'C', 'Candy',
'D', 'Davi',
'E', 'Eve',
'F', 'Fion'
) AS en_name
FROM studentinfo
3 to_char函数功能,就是将数值型或者日期型转化为字符型,转换过程中可以进行格式化处理,函数原型较多,示例如下:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)