sqlnotin多条件
❶ 请教一个NOT IN 的sql语句
SELECT
TOP
15
f_id,f_title,f_pubtime
FROM
t_Article
WHERE
(charindex(',89,',f_class)
>
0
OR
charindex(',90,',f_class)
>
0
OR
charindex(',91,',f_class)
>
0
OR
charindex(',92,',f_class)
>
0
OR
charindex(',93,',f_class)
>
0
)
AND
f_Audit
=
'1'
AND
f_id
not
in
(
SELECT
TOP
4
f_id
FROM
t_Article
WHERE
charindex(',89,',f_class)
>
0
OR
charindex(',90,',f_class)
>
0
OR
charindex(',91,',f_class)
>
0
OR
charindex(',92,',f_class)
>
0
OR
charindex(',93,',f_class)
>
0
AND
f_Audit
=
'1'
AND
f_imagesmall
!=
''
ORDER
BY
f_pubtime
DESC)
ORDER
BY
f_pubtime
DESC
一楼说的对,就是AND的级别比OR高,你要先运行OR就要在前面加上括号。也许你子查询中的条件也要改改才是你要的结果。
❷ sql NOT IN查询问题
有两个以上的关键字还是用NOT
EXISTS更方便一些:
select
a.*
from
a
where
not
EXISTS
(select
*
from
b
where
(a.id=B.ID
OR
A.ID1=B.ID1)
AND
您的其它不进结果的关联条件
)
❸ plsql查询语句中的not in什么意思
查询不在这个范围类的数据。
例如:select * from student where classID notin (1,4,5)查出的就是classID不在1,4,5这个范围内的数据。
不建议用not in这个关键词来做查询,理由:
1、效率低,2、在使用中容易出现问题,或查询结果有误
PL/SQL Developer是一个集成开发环境,专门开发面向Oracle数据库的应用。PL/SQL也是一种程序语言,叫做过程化SQL语言(Proceral Language/SQL)。PL/SQL是Oracle数据库对SQL语句的扩展。
在普通SQL语句的使用上增加了编程语言的特点,所以PL/SQL把数据操作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等操作实现复杂的功能或者计算。MySQL 不支持 PL/SQL ,但支持Navicat Premium。
(3)sqlnotin多条件扩展阅读:
plsql特性:
1、PL/SQL完善器
该完善器允许您通过用户定义的规则对SQL和PL/SQL代码进行规范化处理。在编译、保存、打开一个文件时,代码将自动被规范化。该特性提高了您编码的生产力,改善了PL/SQL代码的可读性,促进了大规模工作团队的协作。
2、SQL 窗口
该窗口允许您输入任何SQL语句,并以栅格形式对结果进行观察和编辑,支持按范例查询模式,以便在某个结果集合中查找特定记录。另外,还含有历史缓存,您可以轻松调用先前执行过的SQL语句。该SQL编辑器提供了同PL/SQL编辑器相同的强大特性。
3、命令窗口
使用PL/SQL Developer的命令窗口能够开发并运行SQL脚本。该窗口具有同SQL*Plus相同的感观,另外还增加了一个内置的带语法加强特性的脚本编辑器。这样,您就可以开发自己的脚本,无需编辑脚本/保存脚本/转换为SQL*Plus/运行脚本过程,也不用离开PL/SQL Developer集成开发环境。
参考资料来源:网络-plsql
❹ SQL语句,IN是包含多个条件的意思,有没有不包含多个条件的语法
not in ('1','2')
就是不包括 1 或 2 的意思了
❺ SQL中关于 利用NOT IN 筛选条件的问题
selectt.table_name
fromall_tablest,ALL_TAB_COLUMNSA
wheret.TABLE_NAME=a.table_name
anda.owner='用户名'
anda.column_name='列名'
orderby1;
直接查all_tables就行了。
❻ sql not in查询问题
换成左外连接能快很多
select top (@size) T.*
from table_1000000 T left outer join (select top ((@page-1)*@size) ID from table_1000000 order by ID asc) R on T.ID=R.ID
where R.ID is null
order by ID asc
❼ sql中not in后面跟条件用什么连接
select top 24 * from movieinfo where [MID] NOT IN (select top 6 MID from movieinfo where MIndex=1 and MTypeID between 10 and 13 )
你这里查出的元组是不满足 MIndex=1 and MTypeID between 10 and 13 的那些
而你后面又查询满足and MIndex=1 and MTypeID between 10 and 13
当然就没有符合要求的元组了
not in 后面是可以加其它条件的
不妨你试试
❽ sql not in问题
NOT IN速度当然很慢,因为这样会存在两个全表检索的情况,使用NOT EXISTS会快很多。
delete from t_b where exists (select 1 from t_b a where isnull(a.cost,0) > isnull(t_b.cost,0) and a.cost <> t_b.cost)
DELETE FROM CIDZ WHERE EXISTS (SELECT 1 FROM CIDZ A WHERE A.ID > CIDZ.ID)
---------这个删除之后,会只剩下这个表中ID最大的一行,没有别的连接条件了么?如果这么已删除,表中只剩下一行了,我觉得你的意思是不是只留下每个地址分组后ID最大的一行啊?
❾ SQL not in语句
not in用法是 表字段 not in 后面加上条件
例如
select * from article a where a.title like '%进步的决定%' and a.is_out_link not in (1)
❿ sql 语句中in ,not in
如果系统不自动优化,并且IN的结果很多,那么有可能IN和NOT IN的效率低些。
所有的IN都可以转换为EXISTS,同样NOT IN可以转换为NOT EXISTS,下面说明IN转换为EXISTS的方法,NOT的类似:
IN的语句:
SELECT * FROM A WHERE F IN (SELECT F FROM B)
可以转换为如下的EXISTS语句:
SELECT * FROM A WHERE EXISTS
(SELECT * FROM B WHERE A.F=B.F)
上面转换的说明:两个WHETE都可能有更多都条件,那么直接AND在相应的地方即可。另外表A和B的关联字段可能名字表同,也司没关系的。