oracle查询语句条件判断怎么写
发布网友
发布时间:2022-03-08 07:34
我来回答
共1个回答
热心网友
时间:2022-03-08 09:04
好像是标准sql吧,就这么写啊。不过大表可不能这么做哦,太占资源了。
补充:
oracle里面有“+”的,不过我怀疑你是不是要拼两个字符串。正统数据库,包括oracle和db2拼接字符串都是采用双竖线“||”,加号只能用于使两个整型或者浮点型数值相加。
这需要看你的相关字段的类型的。如果是数值型,需要首先转换为字符型,再合并,例如:
select
*
from
a
where
to_char(col001)||to_char(col002)
not
in
(select
to_char(col001)||to_char(col002)
from
b)
如果是字符型,可以直接合并:
select
*
from
a
where
col001||col002
not
in
(select
col001||col002
from
b)
如果是date型,同样转换为字符,具体查手册。
但是你这种写法,怎么说呢,不太好把,首先这并不是严格按照你所描述的逻辑,举例来说,如果表a字段是:"12","3",表b是:"1","23"那又会怎样?另外,not
in总是执行全表扫描,效率不高,这样写会好一些:
select
a.*
from
a
left
join
b
on
(a.col001
=
b.col001
and
a.col002
=
b.col002)
where
b.col002
is
null