У меня есть 3 столбца, которые являются строковыми столбцами, рассчитанными с использованием сложной подстроки и заменой функций.Согласование вычисленных полей в SQL
У меня есть 4-я колонка, которая должна быть col1 + col2 + col3.
В настоящий момент четвертый столбец повторяет вычисления, необходимые для вычислений col1 и col2 и col3.
ЗЕЬЕСТ выглядит примерно так (я удалил большую часть функций):
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