Concat при создании функции возвращает NULL в SQL Server

#sql

#sql

Вопрос:

Когда я запускаю функцию, она возвращает нулевое значение, даже если она выполняет / создает функцию без ошибок. Некоторые значения не включают состояние, поэтому адрес необходимо объединить.

 create or alter function CustomerFullAddress
(@CustomerID CHAR)
returns VARCHAR
AS
BEGIN
    DECLARE @FullAddress VARCHAR

    SELECT @FullAddress = Concat(c.Address, ' ', c.City, ', ',
      c.StateOrRegion, ' ', c.PostalCode)
    from Customers c
    where c.CustomerID=@CustomerID 

    RETURN @FullAddress
END
 

Ответ №1:

Всегда указывайте длину при определении a VARCHAR .

Если вы этого не сделаете, размер VARCHAR(1)

Вы всегда должны явно указывать длину типов данных.

Вредные привычки, от которых нужно отказаться: объявление переменной без (длины)