access2010的in語句,執行了沒有任何反應,請大俠幫看
你是要查出姓名是陳進的 xm like"陳進" 等效于 xm ="陳進" 所以你這樣用也是可以的,上面的朋友幫你改進了,但是會查出類似"陳進A" 這樣的記錄,你改成下面的試試
select * from gzmdb where bm in(select distinct bm from gzmdb where xm ="陳進" or xm like"陳進[0-9a]*" and xbm ="西錦2")
其實和你的一樣,只是換了種方法。
另外你的句子在access2003上測試沒有問題,2010的我沒有裝不知道什么情況,估計應該不是句子的問題
求助:Access 查詢對象中sql語句的where條件in不正確
這個要看oracle優化器自己選擇是否要使用INDEX了。
這個要取決于你表name列的數據唯一性和分布。分以下2種情況。
*的唯一性較差: ('name1','name2','name3','name4','name5')條件訪問的數據占全表數據的百分比很大,索引訪問的總成本大于全表掃描的成本。這時優化器就會選擇全表掃描,也就是說不會使index了。
*的唯一性較強 ('name1','name2','name3','name4','name5')條件訪問的數據占全表數據的百分比很小,這時優化器就會選擇使用INDEX了,因此比沒有INDEX時性能要高。 注意:ORACLE優化器了解表數據分布靠的是統計信息,因此統計信息的準確是十分重要的,否則也會產生錯誤的選擇,導致性能下降。
access數據庫查詢里in的用法和等號有什么區別
如果子查詢只有1條記錄,in和=是沒有區別,如果子查詢有多條記錄,用=會出錯的,所以in是無論只查詢有多少條記錄都可以使用,而=只有當子查詢只有1條記錄的時候才能使用
in和exists理解上其實是差不多,但對數據庫而言,in的執行順序是先執行只查詢條件,然后把記錄和外查詢核對,找符合條件的,
而exists是先執行外查詢,再執行子查詢,找到外查詢記錄后和只查詢對比符合條件的,
如果外查詢和子查詢的條目數差異很大,那么效率相差很明顯的
轉載請注明出處華閱文章網 » accessin語句