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