我有3列是使用复杂子字符串和替换函数计算的字符串列。在SQL中连接计算的字段
我有第四列应该是col1 + col2 + col3。
此刻第4列正在重复计算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方法。 – openwonk