首页 > 解决方案 > 为此需要一个优化的查询

问题描述

以下是我当前的 SQL。

Insert into [dbo].[XYZ]
select col1,col2,
(select colValue from parsedData([ParameterizedValue]) where [Name] = 'Some Value') AS col3,
(select colValue from parsedData([ParameterizedValue]) where [Name] = 'Some Value') AS col4,
(select colValue from parsedData([ParameterizedValue]) where [Name] = 'Some Value') AS col5 from [dbo].[ABC]

该语句parsedData重复调用该函数。表 ABC 有数百万条记录。

那么是否有任何 SQL 用于保存结果,parsedData所以parsedData只调用一次,而不是多次。

标签: sqlsql-server

解决方案


您可以进行交叉应用(或外部应用)。

CROSS APPLY 是相关子查询的替代方法,也可用于“加入函数”。我没有一个很好的例子,但这里有一些有用的链接:


推荐阅读