1. sql中in和not in的問題
整條語句 執行的話 「select custcd from grade_model_info where custcd = '10000'」 它 只是作為 「select count(*) from customer_info」 的條件存在 只會返回結果 為false或者空 所以 查詢 不受影響 !
2. oracle sql語法 in 的疑問
簡單來講這是一個書寫不規范的SQL語句,容易讓人產生歧義。對於多表的嵌套查詢規范是每個表都要有別名,指定欄位時更要指定是哪個表的欄位,這樣的代碼才清晰易讀。
復雜來講就是人可能產生歧義,但機器不會。寫這個語句的人就是利用了機器運行語句時的邏輯去寫的代碼,更多的是為了增加代碼復雜度,妨礙他人閱讀理解他的代碼。或者就是這個人的編碼習慣就是如此,具有某種編碼強迫症。
3. sql中的in的問題
朋友,你可以在Request("id")值的前後加上」," 然後把 TagID 轉成字元串前後也加上」,」,用like 進行匹配!
4. 關於sql查詢in用法的問題
你檢查一下這句的結果集是什麼:select address from yunweiuser where name='***'
5. sql in()語句
你這樣構造in的范圍不對。你這樣是把in後面處理成一個字元串了。而in後面跟的應該是一個范圍。
你可以自己寫一個返回數據集的函數來將aa.ddid值處理成in的范圍,
類似於:
假設函數:
ft01(nvarchar(1000))
returns
table
tb
(val
int)。
那麼,
這樣更新裡面子查詢的in條件:
where
id
in
(select
val
from
ft01(aa.ddid))。
另外,
此解決方法只是從in條件上來說。
如果子查詢只有1條記錄,in和=是沒有區別,如果子查詢有多條記錄,用=會出錯的,所以in是無論只查詢有多少條記錄都可以使用,而=只有當子查詢只有1條記錄的時候才能使用。
in和exists理解上其實是差不多,但對資料庫而言,in的執行順序是先執行只查詢條件,然後把記錄和外查詢核對,找符合條件的。
而exists是先執行外查詢,再執行子查詢,找到外查詢記錄後和只查詢對比符合條件的,如果外查詢和子查詢的條目數差異很大,那麼效率相差很明顯的。