J'ai une requête SQL qui est supposée extraire un enregistrement et concaténer chacun d'entre eux à une chaîne, puis générer cette chaîne. La partie importante de la requête est ci-dessous.T-SQL While Loop et concaténation
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
Lorsque le script est exécuté, @tempCatString
sorties comme nulle en @tempCat
sorties toujours correctement. Y at-il une raison pour que la concaténation ne fonctionne pas dans une boucle While? Cela semble faux, puisque l'incrémentation @counter
fonctionne parfaitement. Y a-t-il autre chose qui me manque?
l'une des valeurs du tableau que j'Interrogation était nulle, donc l'ajout d'un IsNull() à la déclaration de @tempCatString a résolu le problème. Merci – JustinT