2 qq 28468725 qq_28468725 于 2016.04.21 23:26 提问

sql decode和case when如何转换
sql

select max(decode(c.code,'001',b.ratio)) rt1,
max(decode(c.code,'002',b.ratio)) rt2,
max(decode(c.code,'003',b.ratio)) rt3,
from table1 a
left join table2 b on a.billid=b.ruleid
left join table3 c on a.sourceid=c.billid
group by a.projectid,a.economicid, b.bdgagency
问一下这个decode怎么转换成case when的形式啊

2个回答

danielinbiti
danielinbiti   Ds   Rxr 2016.04.21 23:31
 decode(c.code,'001',b.ratio)
 =
 case c.code 
 when '001' then b.ratio
 end
CSDNXIAOC
CSDNXIAOC   2016.04.21 23:32

Oracle的DECODE()和CASE WHEN......
答案就在这里:Oracle的DECODE()和CASE WHEN
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
case when 与 decode 用法
case when 在不同条件需要有不同返回值的情况下使用非常方便,可以在给变量赋值时使用,也可以在select查询语句中使用。 case搜索语句格式: case  when 条件1 then 返回值1  when 条件2 then 返回值2  ...  else 返回值N  end; case when使用示例代码: select empno,ename,job,
行转列,列转行,decode,case... when ... then ..
行转列,列转行,decode, case...  when ... then ..case...  when ... then ..[when ...  then ] else ... end 原文: 重温SQL——行转列,列转行 行转列,列转行是我们在开发过程中经常碰到的问题。行转列一般通过CASE WHEN 语句来实现,也可以通过 SQL S
case when和decode的用法与区别
一、case when case when 类似我们的if ...else ,判断语句 语法如下: CASE expr WHEN expr1 THEN return_expr1          [WHEN expr2 THEN return_expr2           ...           WHEN exprn THEN return_exprn           EL
SQL/PLSQL:在where条件中写case when和decode
代码示例: SELECT fp.ka,fp.* FROM BJRC_CKFP FP WHERE 1 = 1 AND fp.ka = ( CASE WHEN '&口岸' IS NOT NULL THEN '&口岸' END) OR fp.ka = DECODE('&口岸',NULL,ka) OR (fp.ka <> DECODE('&口岸','其他','上海')
Oracle中的逻辑判断(nvl、decode和case when)
刚结束一个项目,感觉在数据库
DECODE ROUND case when
写了两周i的sql,真是醉了,但是收获也挺大的,认识了很多函数,所以就赶紧积累下来 写个例子,废话不多说 select count(1) as n1 ,--总人数 SUM(DECODE(B.AAD002,'2',1,0) ) AS n2,--女人数 round(decode(count(1),0,0,(SUM(DECODE(B.AAD002,'2',1,0) )/COUNT
oracle或达梦--使用decode行转列、oracle行转列、case when行转列
目前很多行转列都使用了 oracle 11g新增的pivot ,但是我用达梦国产数据库不支持该函数,所以使用case when的方式 首先,我们需要构造一个两列的数据,也就是查询结果 select 'aaaaa' as flag ,'1' as num from dual union all select 'bbbbb' as flag ,'2' as num from dual un
Oracle中case when和decode的用法
case when 在不同条件需要有不同返回值的情况下使用非常方便,可以在给变量赋值时使用,也可以在select查询语句中使用。 case搜索语句格式: case  when 条件1 then 返回值1  when 条件2 then 返回值2  ...  else 返回值N  end; 示例: declare   i   integer;   str varchar2
oracle中的计算函数decode和case when
今天要跟大家聊一聊两个函数,一个是decode()函数,另一个是case when函数,它们两个都是可以写在SQL语句中被oracle数据库识别的计算函数。 1、decode() 例子:它的写法如下decode('a','b','c','d'),其中a,b,c,d可以是其他函数也可以是数值,依据我们自己的情况来使用,它的含义是如果a=b,那么结果显示c,否则d。 翻译成我们更通俗易懂的话就是
oracle 中when then else与decode的两种用法,null
(   CASE     WHEN T2.BLESSNUM IS NULL     THEN 0     ELSE T2.BLESSNUM   END)    AS BLESSNUM 或者 ENCODE( T2.BLESSNUM, NULL,0,T2.BLESSNUM) AS BLESSNUM ENCODE(t.status,'C','审批通过','P','审批中'