Я разрабатываю на MS SQL Server 2008.Как использовать результат встроенной функции SQL дважды в одном запросе?
Я работаю с SQL запросом написан другим разработчиком с сазе, который выглядит следующим образом:
CASE
WHEN substring(A,4,3) is null THEN '????'
WHEN substring(A,4,3) in ('000','010','018') THEN '100L'
WHEN substring(A,4,3) = '123' AND substring(A,8,3) = 'abc' THEN 'FOO'
END
Моя мысль в том, что ему является избыточным, чтобы использовать substring(A,4,3)
, и там должен быть какой-то способ избежать этого.
Как я могу переписать этот пункт, вызывая substring(A,4,3)
только один раз?
Это не является допустимым заявление случае, третий 'WHEN' имеет соответствующего' затем'. – RedFilter
@RedFilter, я исправил это! Я обработал некоторую конфиденциальную информацию из запроса и случайно сделал ее недействительной. –
Нет разницы в производительности. Двигатель фактически не выполняет это 3 раза. Оптимизатор должен будет выполнить это только один раз. Нет смысла оптимизировать этот оператор. Любая альтернатива этому только сделает ваш код менее удобочитаемым. –