Пример SQL Server SQL, который использует формулу - PullRequest
0 голосов
/ 28 января 2010

У меня есть таблица, в которой есть поле, назовите его «счет». Можно ли написать SQL, который принимает значение в каждом поле «оценка», вводит значение в формулу, затем вывод из формулы записывается в другое поле. У меня нет опыта использования формул в SQL, и я не знаю, возможно ли это. Любой базовый пример, если он выполним, будет полезен.

Ответы [ 5 ]

1 голос
/ 28 января 2010

Вместо того, чтобы хранить его, я бы посоветовал вам вычислять его в реальном времени по запросу или как вычисляемый столбец или использовать индексированное представление , если производительность слишком низкая.

1 голос
/ 28 января 2010

Это называется вычисляемый столбец - они поддерживаются в:

  • Таблица
  • Операторы SELECT
  • 1010 * МНЕНИЯ *
1 голос
/ 28 января 2010
UPDATE OrderLine SET
TotalPrice = UnitPrice * Quantity

Вот и все.

1 голос
/ 28 января 2010

Да, это возможно, но почти всегда вы не хотите сохранять вычисленное поле в базе данных, поскольку это будет означать, что ваша база данных не нормализована должным образом.

Вместо этого вычисляйте значение при запросе, включив дополнительный производный столбец в оператор выбора.

Исключением является случай, когда вам нужно выполнить трудоемкий расчет, и в этом случае вы можете сохранить производное значение в базе данных. Хороший способ сделать это - использовать триггеры для обновления значения при изменении одного из входов или запустить процедуру через определенный интервал времени, чтобы обновить все производные значения во всей таблице.

0 голосов
/ 28 января 2010

Довольно смутный вопрос, но вот общая идея.

ОБНОВЛЕНИЕ MyTable SET FormulaOutput = HomeScore + AwayScore

Эта "формула" просто складывает 2 балла вместе

Полагаю, вы также можете рассчитать "спред" следующим образом:

ОБНОВЛЕНИЕ MyTable SET Spread = MAX (HomeScore, AwayScore) - MIN (HomeScore, AwayScore)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...