gpt4 book ai didi

sql-server - 避免在查询中重复 SQL 片段?

转载 作者:行者123 更新时间:2023-12-02 15:39:18 25 4
gpt4 key购买 nike

我有这个查询(伪代码)

SELECT 
a = 1,
b = 2,
c = CASE
WHEN ISNULL(
(SELECT MONTH(GETDATE()) <---long query
), 0) = 0 THEN 'found'
ELSE
SELECT MONTH(GETDATE()) <--- repeated long query
END

问题是 SELECT MONTH(GETDATE()) 实际上是一个很长的查询。

对于这个“长表达式”是否在查询中不出现两次有任何解决方法吗?

附:

我有一个将 SELECT MONTH(GETDATE()) 计算到外部变量的解决方案...但我想弄清楚是否有内联解决方案。

最佳答案

您有多种选择:

  • 用户自定义函数(UDF)
  • 浏览量
  • 通用表表达式 (CTE)
  • 交叉/外部应用

将根据数据的处理方式来确定最合适的。您的问题没有提供足够的细节来明确提出建议,但这些值得一看。

使用 UDF 时要小心,因为它们会很快影响性能。我个人的经验法则是为简单的数据转换或数学计算编写一个 UDF。我尽量避免在函数中执行复杂的基于集合的操作,并且更喜欢为此使用 View 或 CTE。

关于sql-server - 避免在查询中重复 SQL 片段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10638176/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com