十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
好像是标准sql吧,就这么写啊。不过大表可不能这么做哦,太占资源了。
成都创新互联主营五华网站建设的网络公司,主营网站建设方案,成都App制作,五华h5小程序设计搭建,五华网站营销推广欢迎五华等地区企业咨询
补充:
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
如下参考:
1.从tblTest表中获取itemcode='Item001'的记录行,然后使用where的等式(=)条件,select*fromtblTestwhereitemcode='Item001'如下图。
2. 如果从tblTest表中获得itemnum 50的记录行,则可以使用where greater than()条件。也可以使用大于或等于(=),select * from tblTest where itemnum 50,如下图。
3.从tblTest表中获取itemnum 50的记录行,您可以使用where的小于()条件。小于条件也可以使用小于或等于(=),select * from tblTest where itemnum 50如下图。
4.从tblTest表中获取itemnum不等于itemprice的记录行,可以使用where's not equal to (!等于或小于如下图。
5.从tblTest表中获取包含itemname中单词“item”的记录行,然后可以使用where的fuzzy(%)条件。左边的百分号表示左边可以是任何值,右边的百分号表示右边可以匹配任何值,百分号可以是两边的,如下图。
oracle中用一条select语句把符合多个条件的查询结果列出来SELECTp.product_directory_level,COUNT(CASEWHENp.product_directory_level=1THEN。