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的關聯欄位可能名字表同,也司沒關系的。