Каков правильный синтаксис для условной установки переменной T-SQL из оператора select
?
У меня есть код, подобный следующему:
select @CreationDate = dm.TS_UP
, @RegenerateDocument = dm.REGENERATEBLOB
, @CalculateRelativeToDate = case
when dm.REGENERATEBLOB is null then getdate()
when dm.REGENERATEBLOB = 'Y' then getdate()
when dm.REGENERATEBLOB = 'N' then coalesce(@ApprovalDate, getdate())
end
from doc_mgmt dm
where dm.ID_DOC = '11123'
and dm.ID_PRMRY_TYPE = @CID
and dm.ID_WRK_TYPE = @IID
Обратите внимание, что нетветвей в случае заканчиваются на null
.
Но у меня возникли некоторые проблемы с переменной @CalculateRelativeToDate
, которая иногда выглядит как null
.Я не понимаю, почему это будет.На самом деле, в случае, когда я тестирую, флаг @RegenerateDocument
установлен на Y
, поэтому я думаю, что ДОЛЖЕН получить getdate()
.Но я получаю null
.
Каков правильный синтаксис для условной установки переменной T-SQL из оператора select
?