sql - 为此需要一个优化的查询
问题描述
以下是我当前的 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
只调用一次,而不是多次。
解决方案
您可以进行交叉应用(或外部应用)。
CROSS APPLY 是相关子查询的替代方法,也可用于“加入函数”。我没有一个很好的例子,但这里有一些有用的链接:
推荐阅读
- python - 铸造 int 的奇怪行为
- android - Google Play 评论:无法验证声明的功能 CALLER_ID_DETECTION_BLOCKING
- macos - Iterm2 新选项卡中的 tmux 交互式会话
- angular - Angular 7 结构指令仅在刷新浏览器后才有效
- mongodb - MongoDB 中的嵌入式符号
- amazon-web-services - AWS 中针对 SPA 和 API 网关的交叉堆栈参考
- scala - Scala 编译时错误:“找不到参数编码器的隐式值:io.circe.Encoder”
- node.js - 诗乃:不能嘲笑promise
- xml - 如何让 XPath 选择注释选择器
- cron - 如何在不同时区设置多个 crontab 任务?