sql多欄位Notin
A. sql in和not in集合運算只能用於一個欄位嗎
可以啊,各個欄位分別用這個關鍵字作為判斷條件。比如
select * from tabname
where f1 in ('A', 'B', 'C')
and f2 not in ('MM', 'QQ');
B. SQL每日一練——第2天:Where in 和Not in
SQL每日一練——第2天:Where in 和Not in
學習SQL,每日一練,掌握知識,學以致用。刷題是最佳途徑,能幫助快速掌握技能,為將來就業打下堅實基礎。
題目描述:運營需調研北京大學、復旦大學和山東大學的學生,需取出相關數據。
示例:user_profile
查詢結果應包含device_id,gender,age,university,gpa。
題解分析:使用in(欄位...)和not in(欄位..)關鍵字。
推薦使用in增加復用性。
查詢示例:select device_id,gender,age,university,gpa from user_profile where university in('北京大學','復旦大學','山東大學');
where字句支持多種使用場景。
解決方案與題解示例:輸入示例,輸出結果。
總結:編程提升的關鍵在於練習,注重學與刷題並重,不斷實踐提高編程思維與能力。
C. sql語句,select not in
把 where之前的order by 放在語句最後。
還有not in 裡面不需要order by了
D. 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的關聯欄位可能名字表同,也司沒關系的。
