gpt4 book ai didi

sql - 在 SQL 中连接计算字段

转载 作者:行者123 更新时间:2023-12-02 09:30:16 24 4
gpt4 key购买 nike

我有 3 列,它们是使用复杂子字符串和替换函数计算的字符串列。

我有第四列,应该是 col1 + col2 + col3。

目前,第四列正在重复计算 col1、col2 和 col3 所需的计算。

select 语句看起来像这样(我已经删除了大部分函数):

select 
STR(c1, 2, 0) as col1,
STR(c2, 2, 0) as col2,
STR(c3, 2, 0) as col3,
STR(c1, 2, 0) + STR(c2, 2, 0) + STR(c3, 2, 0) as col4
from blah

问题在于我们重复计算列的函数,破坏了 DRY 原则,并为错误的出现提供了机会。

我希望我们能做这样的事情:

select 
STR(c1, 2, 0) as col1,
STR(c2, 2, 0) as col2,
STR(c3, 2, 0) as col3,
col1 + col2 + col3 as col4
from blah

有没有一种巧妙的方法可以做到这一点?我认为可以使用临时表来完成,但这似乎有点矫枉过正。

这值得做吗,还是我只是认真对待 DRY。

最佳答案

您可以使用 CTE 来做到这一点:

;WITH data_cte (col1, col2, col3)
AS
(
select
STR(c1, 2, 0) as col1,
STR(c2, 2, 0) as col2,
STR(c3, 2, 0) as col3
from blah
)

SELECT
col1, col2, col3,
col1 + col2 + col3 as col4
FROM data_cte

关于sql - 在 SQL 中连接计算字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33862561/

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