SELECT *
FROM (SELECT [coit_id] AS commodity
,[sist_id]
,[cost_modified_date]
,[cost_timestamp]
FROM [Cargo_Ver_3_0_33].[dbo].[Commodity_State])
WHERE
commodity > 15
SQL檢查條件時是否首先讀取所有記錄?SQL Server將讀取子查詢的所有記錄?
SELECT *
FROM (SELECT [coit_id] AS commodity
,[sist_id]
,[cost_modified_date]
,[cost_timestamp]
FROM [Cargo_Ver_3_0_33].[dbo].[Commodity_State])
WHERE
commodity > 15
SQL檢查條件時是否首先讀取所有記錄?SQL Server將讀取子查詢的所有記錄?
不需要在這裏做子查詢,這將是更昂貴的。以下查詢將提供相同的結果。在你上面的例子中,SQL引擎將首先構建子選擇列表,然後執行外部查詢,但是你沒有完成任何需要子查詢的獨特任務。
SELECT
[coit_id] AS commodity,
[sist_id],
[cost_modified_date],
[cost_timestamp],
FROM [Cargo_Ver_3_0_33].[dbo].[Commodity_State] WHERE commodity > 15;
您忘記了'[coit_id] AS商品'字段。 – danielhc
好,我已經更新了答案 – BrianAtkins
有一篇關於「How SQL Server executes a query」的很好的文章。
你可以先閱讀並看到,Data caches
然後Query Execution
呼叫做一些尋求和其他操作。
對不起,查詢粘貼minstakely請看下面的行也 –
爲什麼你使用子查詢?沒有必要 – FuzzyTree
這是不確定的,因爲sql引擎基於統計信息工作,它開發了一個查詢計劃並根據該查詢計劃執行查詢。 – CrApHeR