Простой пример функции COALESCE:
Создана одна временная таблица, в которую я поместил 9 строк с помощью цикла WHILE.
В основной части я просто перенес функцию Column to COALESCE.
DROP TABLE # Материал
УСТАНАВЛИВАЙТЕ NOCOUNT ON
СОЗДАТЬ ТАБЛИЦУ # Материал
(
MaterialID INT
)
ОБЪЯВИТЬ @LoopCounter INT
ОБЪЯВИТЬ @MaxLoopCounter INT
SET @LoopCounter = 1
SET @MaxLoopCounter = 10
WHILE (@LoopCounter <@MaxLoopCounter)
НАЧАТЬ
INSERT INTO #Material (MaterialID) ЗНАЧЕНИЯ (@LoopCounter)
SET @LoopCounter = @LoopCounter + 1
END </p>
/ * ОСНОВНАЯ ЧАСТЬ * /
ОБЪЯВИТЬ @MaterialID VARCHAR (100)
SELECT @MaterialID = COALESCE (@MaterialID + ',', '') + CAST (MaterialID AS VARCHAR (100)) ОТ # Материал
ПЕЧАТЬ 'ФИНАЛЬНЫЙ ВЫХОД:' + @ MaterialID
- ВЫБРАТЬ * ИЗ # Материала
SET NOCOUNT OFF