SELECT CASE
WHEN '' IS NULL THEN 222
ELSE 0
END
FROM DUAL;这条语句可以正常执行 ,但是下面这条语句就无法正常执行了,请大虾指点(case receive_detail.USER_DEFINED_03 --列名
when 'NORMAL' then 'Good'
when 'BAD' then 'Damaged'
when '' is null then '/'
else receive_detail.USER_DEFINED_03
end) as status,
WHEN '' IS NULL THEN 222
ELSE 0
END
FROM DUAL;这条语句可以正常执行 ,但是下面这条语句就无法正常执行了,请大虾指点(case receive_detail.USER_DEFINED_03 --列名
when 'NORMAL' then 'Good'
when 'BAD' then 'Damaged'
when '' is null then '/'
else receive_detail.USER_DEFINED_03
end) as status,
解决方案 »
- oracle 存储过程的问题,高分期待高手!!!!!!1
- sql plus登录时提示适配器错误
- 做一个oracle触发器,不会做,哪个大人给写一个,我学习下,感激不尽 = =!
- oracle 替换函数问题
- 关于oracle索引的问题,谁答上有重赏!!!!!!!!!!
- 高分求教,数据库参数配置的问题~
- 关于数据库两个相同表结构不同数据的表的比较?SQL很强的来吧?
- 如何把一个数据库建立在一个表空间上?急问
- 启动问题?说我权限不足~!
- 我想请问有哪几个比较好的oracle的学习网站,最好是BBS的!还有求一个ftp下载oracle!
- 高手帮帮忙, 一些简单的SQL,急用,超级感谢 .
- vb.net如何连接oracle数据库?
when 'NORMAL' then 'Good'
when 'BAD' then 'Damaged'
when null then '/'
else receive_detail.USER_DEFINED_03
end) as status
when receive_detail.USER_DEFINED_03 ='BAD' then 'Damaged'
when receive_detail.USER_DEFINED_03 is null then '/'
else receive_detail.USER_DEFINED_03
end) as status
看下书吧,两个用法不一样的
case...when...里的when后面只能接值,不能接表达式!
case when...的when后面只能接表达式不能接值!
--为何不用decode函数呢?
decode(receive_detail.USER_DEFINED_03,'NORMAL','Good',
'BAD','Damaged',
'','/',
receive_detail.USER_DEFINED_03) as status
with a as(select '1' d from dual union all
select '2' from dual union all
select '5' from dual union all
select '' from dual
)
select case when d='1' then '11'
when d='2' then '22'
when d is null then '/'
else d end from a——————————————————————————
11
22
5
/
nvl2(receive_detail.USER_DEFINED_03,
(case receive_detail.USER_DEFINED_03
when 'NORMAL' then 'Good'
when 'BAD' then 'Damaged'
else receive_detail.USER_DEFINED_03
end),'/')as status,
nvl2(receive_detail.USER_DEFINED_03,
(case receive_detail.USER_DEFINED_03
when 'NORMAL' then 'Good'
when 'BAD' then 'Damaged'
else receive_detail.USER_DEFINED_03
end),'/')as status,