gpt4 book ai didi

sql - 如何避免在同一选择中多次重复计算表达式?

转载 作者:行者123 更新时间:2023-12-03 01:24:13 24 4
gpt4 key购买 nike

如何在同一个选择中多次使用计算列而不重复表达式且不使用公用表表达式或复杂的子选择?

DECLARE @T TABLE ( NUM1 INT,NUM2 INT)
INSERT INTO @T VALUES (2,3);
INSERT INTO @T VALUES (5,7);
INSERT INTO @T VALUES(32,3);
INSERT INTO @T VALUES(6,8);

SELECT (NUM1+NUM2) [ADD], [ADD]*2, [ADD]/2,* FROM @T

在 SQL Server 2005 中有什么办法可以解决这个问题吗?

最佳答案

您可以使用交叉应用

SELECT T2.[ADD],
T2.[ADD]*2,
T2.[ADD]/2
FROM @T AS T1
CROSS APPLY (SELECT T1.NUM1+T1.NUM2) AS T2([ADD])

或 CTE

WITH C AS
(
SELECT NUM1+NUM2 AS [ADD]
FROM @T
)
SELECT [ADD],
[ADD]*2,
[ADD]/2
FROM C

或子查询(也称为派生表)

SELECT T.[ADD],
T.[ADD]*2,
T.[ADD]/2
FROM (
SELECT NUM1+NUM2 AS [ADD]
FROM @T
) AS T

无法在声明的同一字段列表中使用列别名。

关于sql - 如何避免在同一选择中多次重复计算表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8181941/

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