關於sql語句中的過濾條件的先後問題

2021-08-25 04:29:26 字數 288 閱讀 1934

現在有一條sql語句:select * from emp where empno = 10 and empname like "%a%";

如果說們要對這條sql語句進行優化,那麼這兩個條件應該如果排列才好?empno=10這個條件應該是過濾粒度大的條件。

在oracle資料庫中要把把過濾粒度大的條件放到後面,因為在oracle資料庫中條件是從sql語句中後面的乙個條件開始解析。而對於sqlserver資料庫則要放到前面 這兩種資料庫產品是不一樣的。

我今天面試的時候被問到了,還不知道有這個區別所以回答錯了,鬱悶!

關於SQL語句外連線中的過濾條件

使用左外連線時,注意以下兩點 假設有以下兩張表 a表 id active11 2131 40b表 idaid active111 11210 222123 21這裡兩張表呈現為主從關係,a表為父 主 表,b表為子 副 表。兩張表的id欄位都是主鍵,b表的aid欄位為指向a表的外來鍵。兩張表中的act...

sql語句中條件查詢in like 的效率

1 如果條件欄位都是非索引字段,那麼效率都差不多,就看結果大小。2 有差別的在於條件欄位是索引欄位時 在索引的情況下都會進行索引掃瞄,所以效率總是高的。like 當模糊查詢為右模糊,比如 abc 時,掃瞄索引,高效。當模糊查詢含左模糊時,比如 abc 進行全表掃瞄,低效。in 的作用等同於or,也是...

sql語句中的where條件執行順序

語句1 select from work order list where head corp id 1 and work order state in 1,2 and receiving id is null or receiving id 27 語句2 select from work orde...