oracle 查询数据不符合条件的语句也要显示出来,但要为空oracle 查询语句:例如:例如:idnameage1小明182王刚
oracle 查询数据不符合条件的语句也要显示出来,但要为空
oracle 查询语句:
例如:
例如: id name age
1 小明 18
2 王刚 20
3 李丽 16
4 张娜 21
5 金泰 13
条件就是age>=18
显示的结果为:
1 小明 18
2 王刚 20
3 李丽
4 张娜 21
5 金泰
求各位大侠帮忙
[解决办法]
select id, name, case when age>=18 then age else null end
from student;
[解决办法]
[解决办法]
select id,name,age from student where age>18
nuion select id,name,null age from student where age<=18;
[解决办法]
select id,name,age from student where age>18
union select id,name,null age from student where age<=18;
[解决办法]
select id, name, case when age>=18 and age is not null then to_char(age) else '' end agse
from student;
[解决办法]
[解决办法]
- SQL code
with cte AS(SELECT 1 id,'小明' name,18 age FROM DUALUNION ALLSELECT 2, '王刚', 20 FROM DUALUNION ALLSELECT 3, '李丽' ,16 FROM DUALUNION ALLSELECT 4, '张娜' ,21 FROM DUALUNION ALLSELECT 5, '金泰', 13 FROM DUAL)SELECT ID,NAME,DECODE(SIGN(AGE-18),-1,NULL,AGE) AGE FROM CTE;结果如下:ID NAME AGE ---------------------- ---- ---------------------------------------- 1 小明 18 2 王刚 20 3 李丽 4 张娜 21 5 金泰 5 rows selected
[解决办法]
select id, name, case when age>=18 then to_char(age) else null end age from student;
[解决办法]
CREATE table TEST
(
id number,
name varchar2(20),
age number
)
insert into test values (5,'金泰','13');
select * from TEST
11小明18
22王刚20
33李丽16
44张娜21
55金泰13
select id,
name,
case
when age > 18 then
age
else
null
end case
from test
11小明
22王刚20
33李丽
44张娜21
55金泰
[解决办法]
[解决办法]
SELECT id,name,DECODE(SIGN(AGE-18),-1,'',age) from student
[解决办法]
IF AGE IS NOT NULL THEN
SELECT END IF;
- SQL code
IF AGE IS NOT NULL THENSELECT ID,NAME,AGE FROM CET WHERE AGE>=18;END IF;
