Я знаю, что это просто, но я не могу найти ответ в Интернете. Возьмите этот кусок кода.Значения переменных по умолчанию T-SQL
declare @year int
declare @orderdate datetime
set @orderdate = (select orderdate from [table] where [id = variable id])
if @orderdate between '01-Apr-2005 00:00' and '31-Mar-2006 23:59'
set @year = 2005
Этот раздел с жестким кодированием присваивает год 2005 году, если он находится в этом диапазоне дат. В противном случае? Ну, я не знаю.
Я попытался добавить заявление печати, чтобы распечатать значение, но механизм T-SQL просто пропускает код. Итак, что такое - его значение, если приведенный выше оператор if не выполняется? Можно ли это назвать ценностью?
Вы попробовали PRINT ISNULL (CONVERT (varchar, @OrderDate), 'None') для вашего заявления на печать. Печать NULL трудно увидеть (пустая строка) – Kamal
@Kamal: Нет, я попробую это сейчас. Я попробовал напечатать строку с надписью «год:», а затем конкатенацию с значением года - но это пропустило всю строку –
строка + NULL = NULL в sql-сервере – Kamal