Добавить комментарий

Изображение пользователя st.

Вариант с функцией

Использовать значение из проекции в выражении можно без проблем. В MS SQL значения функции не передаются в качестве аргумента. Далеко не все СУБД поддерживают функции.

В итоге вариант с функцией менее универсален. Особенно это проявляется при отображении перечислимых типов (enumeration) на реляции с последующим использованием их в запросах. Например.

public enum CalculationRule
{
    Unknown = 0,
    TurnoverWithFixedQuantity = 1,
    QuantityWithFixedTurnover = 2
}

Преобразуется в 2 проекции

CREATE VIEW CalculationRule(Unknown, TurnoverWithFixedQuantity, QuantityWithFixedTurnover)
AS SELECT 0, 1, 2;
GO
 
CREATE VIEW CalculationRuleValues
AS SELECT 'Unknown' AS name, 0 AS value
UNION
SELECT 'TurnoverWithFixedQuantity' AS name, 1 AS value
UNION
SELECT 'QuantityWithFixedTurnover' AS name, 2 AS value
GO