看**:
複製** **如下:
set statistics io on
set statistics time on
go set statistics profile on
go use pubs
select * from authors
where (au_fname like 's%' or au_fname like 'a%')
and (state like 'ca' or state like 'ut')
and (cast(zip as int) > 90000)
select * from authors
whwww.cppcns.comere (au_fnamemaponfsn like 's%' or au_fname like 'a%')
and (cast(zip as int) > 90000)
and (state like 'ca' or state like 'ut')
select * from authors
where程式設計客棧 (cast(zip as int) > 90000)
and (au_fname like 's%' or au_fname like 'a%')
and (state like 'ca' or state like 'ut')
目的:想驗證where語句的各個條件的查詢順序
環境:sqlserver 2005express版本
步驟:顯示查詢計畫
結果:無一例外,都被統一成了這樣的**
複製** **如下:
|--clustered index scan(object:([pubs].[dbo].[authors].[upkcl_auidind]), where:(convert(int,[pubs].[dbo].[authors].[zip],0)>(90000) and ([pubs].[dbo].[authors].[au_fname] like 's%' or [pubs].[dbo].[authors].[au_fname] like 'a%') and ([pubs].[dbo].[authors].[state] like 'ca' or [p程式設計客棧].[state] like 'ut')))
結論:貌似在2005之前的版本中,where子句的順序是從前往後的。但是又貌似在2005的版本中進行了優化,所有的順序都被統一成了以過濾能力進行排序的語句。
本文標題: where 子句的執行順序
本文位址:
where子句查詢
使用where關鍵進行查詢結果篩選 select 欄位名,欄位名,from表名 where 篩選條件 單條件篩選 單篩選條件 使用運算子進行篩選 單個條件中 注意 如果條件中的值為字元,必須使用單引號括起來 查詢所有的員工的工資資訊 select empno,ename,sal comm as 薪資...
SQL 的where 執行順序
乙個原則,排除越多的條件放到第乙個例子 抄的。select where p.languages id 1 and m.languages id 1 and c.languages id 1 and t.languages id 1 and p.products id in 472,474 這樣查詢需...
SQL的where執行順序
1 mysql 從左到右.乙個原則,排除越多的條件放到第乙個 例子 抄的。select where p.languages id 1 and m.languages id 1 and c.languages id 1 and t.languages id 1 and p.products id in...