我想用一个查询语句实现如下功能:
从A表中查询B这个字段,如果B这个字段是NULL就查询C这个字段.
想用Select case来做但是不知道Orc中是怎么写的,麻烦帮忙给个参照.3Q
从A表中查询B这个字段,如果B这个字段是NULL就查询C这个字段.
想用Select case来做但是不知道Orc中是怎么写的,麻烦帮忙给个参照.3Q
解决方案 »
- 写了个插值的insert,怎么不起作用?
- 带默认参数的存储过程调用
- 请问一个merge into 的ON后面多个条件如何实现?
- 请问,pl/sql中的tool => session 能保持多长时间?
- 求UNIX下安装ORACLE的方法,急!!!
- 求救,如何在sqlplus查询出clob子段中的数据???急啊,高手求救!!!
- 高分求救:html存入oracle问题!
- oracle 对系统资源的要求至少是什么配置呢?
- ORA-01041: internal error. hostdef extension doesn't exist
- Oracle限定查询问题
- 不同库数据的比较
- 遇到error,请给位大虾解决一下啊,谢谢
SQL> select * from test.t; IDX CNAME
--------------------------------------- ------------------------------------------------------------
1 aaaa
2 bbbb
3 ccccSQL> select decode(idx,1,cname),cname from test.t;DECODE(IDX,1,CNAME) CNAME
------------------------------------------------------------ ------------------------------------------------------------
aaaa aaaa
bbbb
ccccSQL> select decode(idx,1,cname,88888),cname from test.t;DECODE(IDX,1,CNAME,88888) CNAME
------------------------------------------------------------ ------------------------------------------------------------
aaaa aaaa
88888 bbbb
88888 cccc
when ... then
...
when ... then
...
else
...
end或case
when ... then
...
when ... then
...
else
...
end
建议用这个,Oracle、DB2 通用
用这个要好一些,
select case when B is null then C else B end FName from A;
用这个的时候似乎要两个字段类型要相同
我也自己解决了,谢谢二楼
分少只能意思意思了.3Q
select case when b is null then c else b end from 表oracle 用法更简单:
select decode(b,null,c,b) from 表两个语句的较果是一样的;