SQL的SELECT语句,里面可以嵌套CASE么??

来源:百度知道 编辑:UC知道 时间:2024/06/05 13:51:13
大致意思是:从一个表里面检索数据,然后判断一个字段检索出来的数据是否为NULL
如果是NULL的话,检索一个值显示画面上。
如果不为NULL的话,则从另一个表中检索出来几条数据,拼成一个SQL文,显示在画面上。

我写的代码是:

SELECT a.A aa,
a.B bb,
a.C cc,

CASE
WHEN a.C IS NULL THEN
a.D dd,
ELSE
DECODE(b.A,'NULL',' ',b.A,b.A) || b.B || b.C || b.D,
END

a.E ee,
a.F ff
FROM 表 a,
表 b
我这样写完在OB运行报错,小弟SQL不好,在这请教高手这段代码应如何写?
先谢谢诸位了。

可以的,而且使用频率还比较高。
例:字段:性别 以1和2,分别代表男和女
xb
1
2
1
那么检索的时候可以写:
select case when xb = '1' then‘男’when '2' then '女' else '' end

看你用decode,那肯定是oracle,其实decode就是case when case只有2种用法
第一种:
case a when '男' then 1
when '女' then 2
else 3
end
第二种:
case when a='男' then 1
when a='女' then 2
else 3
end
在select中就这2中用法,都可以用decode实现

decode 其实根本不需要。

SELECT a.A aa,
a.B bb,
a.C cc,

CASE
WHEN a.C IS NULL THEN
a.D dd,
ELSE
nvl(b.A,' ') || b.B || b.C || b.D,
END ,

a.E ee,
a.F ff
FROM 表 a,
表 b

--------------------
注意了, END 后面要有逗号!!!