Вы должны быть осторожны при использовании этого метода. Это может не повлиять на вас сейчас, для этого запроса, но имейте это в виду для будущих применений этого метода.
Проблема возникает, когда в вашем списке есть значение NULL. Когда это произойдет, вы получите неправильные результаты.
Например, если ваша исходная таблица выглядит следующим образом ...
1 Blah
2 NULL
3 Foo
4 Cracker
Ваша функция вернет Foo, Cracker. Первое значение, Blah, будет пропущено этим вызовом функции. Это очень легко приспособить, с небольшим изменением вашей функции, как это ...
CREATE FUNCTION [CombineValues] ()
RETURNS VARCHAR(8000)
AS
BEGIN
DECLARE @CuisineList VARCHAR(8000);
SELECT @CuisineList = COALESCE(@CuisineList + ', ', '') +
CAST(Cuisine AS varchar(20))
FROM Cuisines
WHERE Cuisine Is Not NULL
RETURN @CuisineList
END
Проверяя NOT NULL, вы устраните эту потенциальную проблему.