×

oracle decode c decode函数

oracle decode(oracle decode函数)

admin admin 发表于2022-09-05 11:22:51 浏览95 评论0

抢沙发发表评论

本文目录

oracle decode函数


--楼主 我来告诉你吧
--你的语句的意思是 当ename字段等于job字段的值时 把值置为 sal 你这个sal应该是一个字段名
--否则 就返回他自己的值 所以你的报错是因为 ename和另外两个字段的数据类型不一致
--也就是说ename,job ,sal 这三个数据类型要一致 必须一致 你可以检查一下 处理好这个就可以了
--DECODE(ename,job ,sal,ename ) 这隐性判断是 当ename=job 把ename=sal 否则 就等于他
--本身 所以 这三个数据类型要一致
--有什么问题可以随时找我 希望采纳

oracle中decode()函数


decode()只是个转义的函数
例如在你的语句中decode(category,
’COMPUTER’,
retail*1.1)
的意思就是
假如字段category为COMPUTER’则返回retail*1.1,这里retail*1.1是什么类型返回值就是什么类型;看你第二个语句也没有错误(我说从语法结构上),而且我自己也做了测试没有问题;你可以加Q然后远程协助看看你的环境

如何使用oracle的decode函数进行多值判断


Decode函数的语法结构如下: decode (exPRession, search_1, result_1)decode (expression, search_1, result_1, search_2, result_2)decode (expression, search_1, result_1, search_2, result_2, ...., search_n, result_n)decode (expression, search_1, result_1, default)decode (expression, search_1, result_1, search_2, result_2, default)decode (expression, search_1, result_1, search_2, result_2, ...., search_n, result_n, default) decode函数比较表达式和搜索字,如果匹配,返回结果;如果不匹配,返回default值;如果未定义default值,则返回空值。 以下是一个简单测试,用于说明Decode函数的用法: SQL》 create table t as select username,default_tablespace,lock_date from dba_users;Table createdSQL》 select * from t;USERNAME DEFAULT_TABLESPACE LOCK_DATE ------------------------------ ------------------------------ -----------SYS SYSTEMSYSTEM SYSTEM DBSNMP SYSTEM SCOTT SYSTEM ------------------------------ ------------------------------ ----------- ------------------------------ --------
-decode函数

关于Oracle的decode函数


可以啊,小于60不就是条件么。
不过decode要实现这个大于小于就要用到sign函数进行组合。
decode(sign(字段-60),-1,’正常’,1,’异常’)
建议用case when then
case when 字段《60 then ‘正’ when 字段》60 then ’异常’ else ’其他’ end
-c

oracle decode函数的使用方法


比如:语句select id,decode(id,1,’男’,2,’女’,3,’人妖’) as “性别“ from t2;
表示:当id=1时,返回值男
当id=2时,返回值女
当id=3时,返回值人妖
具体步骤如下:
create table t2(id varchar2(20));
insert into t2 values(1);
insert into t2 values(2);
insert into t2 values(2);
insert into t2 values(2);
insert into t2 values(3);
insert into t2 values(1);
select id,decode(id,1,’男’,2,’女’,3,’人妖’) as “性别“ from t2;
ID 性别
1 1 男
2 2 女
3 2 女
4 2 女
5 3 人妖
6 1 男
-decode函数

oracle decode的用法有哪些


decode含义解释:
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语句简单了许多
使用方法:
1、比较大小
select decode(sign(变量1-变量2),-1,变量1,变量2) from dual; --取较小值
sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1
例如:
变量1=10,变量2=20
则sign(变量1-变量2)返回-1,decode解码结果为“变量1”,达到了取较小值的目的。
2、此函数用在SQL语句中,功能介绍如下:
Decode函数与一系列嵌套的 IF-THEN-ELSE语句相似。base_exp与compare1,compare2等等依次进行比较。如果base_exp和 第i 个compare项匹配,就返回第i 个对应的value 。如果base_exp与任何的compare值都不匹配,则返回default。每个compare值顺次求值,如果发现一个匹配,则剩下的compare值(如果还有的话)就都不再求值。一个为NULL的base_exp被认为和NULL compare值等价。如果需要的话,每一个compare值都被转换成和第一个compare 值相同的数据类型,这个数据类型也是返回值的类型。
Decode函数在实际开发中非常的有用
结合Lpad函数,如何使主键的值自动加1并在前面补0
select LPAD(decode(count(记录编号),0,1,max(to_number(记录编号)+1)),14,’0’) 记录编号 from tetdmis
eg:
select decode(dir,1,0,1) from a1_interval
dir 的值是1变为0,是0则变为1
比如我要查询某班男生和女生的数量分别是多少?
通常我们这么写:
select count(*) from 表 where 性别 = 男;
select count(*) from 表 where 性别 = 女;
要想显示到一起还要union一下,太麻烦了
用decode呢,只需要一句话
select decode(性别,男,1,0),decode(性别,女,1,0) from 表

3,order by对字符列进行特定的排序
还可以在Order by中使用Decode。
例:表table_subject,有subject_name列。要求按照:语、数、外的顺序进行排序。这时,就可以非常轻松的使用Decode完成要求了。
select * from table_subject order by decode(subject_name, ’语文’, 1, ’数学’, 2, , ’外语’,3)
-c

oracle中decode函数有什么用啊


你好,DECODE函数相当于一条件语句(IF).它将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式。当然,如果未能与任何一个实参序偶匹配成功,则函数也有默认的返回值。区别于SQL的其它函数,DECODE函数还能识别和操作空值.
-decode函数

oracle 中decode 是啥意思啊,有什么用啊,好晕啊!


DECODE函数是ORACLE PL/SQL的功能强大的函数之一,目前还只有ORACLE公司的SQL提供了此函数,其它数据库厂商的SQL实现还没有此功能。DECODE有什么用途呢? 先构造一个例子,假设我们想给智星职员加工资,其标准是:工资在8000元以下的加20%;工资在8000元或以上的加15%,通常的做法是,先选出记录中的工资字段值? select salary into var-salary from employee,然后对变量var-salary用if-then-else或choose case之类的流控制语句进行判断。 如果用DECODE函数,那么我们就可以把这些流控制语句省略,通过SQL语句就可以直接完成。如下:   select decode(sign(salary - 8000),1,salary*1.15,-1,salary*1.2,salary) from employee 是不是很简洁? DECODE的语法:DECODE(value,if1,then1,if2,then2,if3,then3,...,else),表示如果value等于if1时,DECODE函数的结果返回then1,...,如果不等于任何一个if值,则返回else。初看一下,DECODE 只能做等于测试,但刚才也看到了,我们通过一些函数或计算替代value,是可以使DECODE函数具备大于、小于或等于功能。
-c

oracle中decode函数有什么用


DECODE函数相当于一条件语句(IF).它将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式。当然,如果未能与任何一个实参序偶匹配成功,则函数也有默认的返回值。区别于SQL的其它函数,DECODE函数还能识别和操作空值.
其具体的语法格式如下:
DECODE(input_value,value,result[,value,result…][,default_result]);
其中:
input_value
试图处理的数值。DECODE函数将该数值与一系列的序偶相比较,以决定最后的返回结果
value
是一组成序偶的数值。如果输入数值与之匹配成功,则相应的结果将被返回。对应一个空的返回值,可以使用关键字NULL于之对应
result
是一组成序偶的结果值
default_result
未能与任何一序偶匹配成功时,函数返回的默认值
下面的例子说明了,如何读取用户CHECKUP表SEAPARK中的BLOOD_TEST_FLAG列下的项目,作为DECODE函数的实参支持值。
SELECT
checkup_type,
DECODE(blood_test_flag,’Y’,’Yes’,’N’,’No’,NULL,’None’,’Invalid’)
FROM
checkup;
-decode函数

谁能介绍下,oracle中decode函数的用处


decode(字段名或公式,如果1,则1,如果2,则2。。。否则,3)
比如有个表里有个数字字段叫int_a
decode(int_a,1,100,2,200,300)
上面这个函数的意思就是如果int_a=1,则查询结果该数据显示为100,等于2则显示为200,否则都显示为300。。。
用处很多根据需求不同有不同,最常用的是比如表里有个字段做标志位不同数字代表不同的含义,比如‘1’代表省,‘2’代表国家,在查询结果上肯定不能显示为数字1或2,这样谁也不明白什么意思,就可以用decode(int_a,1,’省’,2,’国家’)这样写。。
-c