У меня есть SQL-запрос, который должен вытащить запись и выполнить каждую строку, а затем вывести эту строку. Важная часть запроса приведена ниже.T-SQL while Loop и concatenation
DECLARE @counter int;
SET @counter = 1;
DECLARE @tempID varchar(50);
SET @tempID = '';
DECLARE @tempCat varchar(255);
SET @tempCat = '';
DECLARE @tempCatString varchar(5000);
SET @tempCatString = '';
WHILE @counter <= @tempCount
BEGIN
SET @tempID = (
SELECT [Val]
FROM #vals
WHERE [ID] = @counter);
SET @tempCat = (SELECT [Description] FROM [Categories] WHERE [ID] = @tempID);
print @tempCat;
SET @tempCatString = @tempCatString + '<br/>' + @tempCat;
SET @counter = @counter + 1;
END
При выполнении сценария @tempCatString
выходы как нуль, а @tempCat
всегда выводит правильно. Есть ли какая-то причина, что конкатенация не будет работать внутри цикла While? Это кажется неправильным, так как приращение @counter
работает отлично. Так что-то еще мне не хватает?
Одно из значений в таблице я был нулевой поиску информации, поэтому добавление IsNull() к декларации @tempCatString исправили проблему. благодаря – JustinT