Est-il possible de mettre à jour plus d'une variable locale en une seule sélection?
Quelque chose comme:
set
@variableOne = avg(someColumn),
@variableTwo = avg(otherColumn)
from tblTable
Il semble un peu inutile de faire deux opérations de sélection distinctes pour quelque chose d'aussi trivial que cette tâche:
set @variableOne = ( select avg(someColumn) from tblTable )
set @variableTwo = ( select avg(otherColumn) from tblTable )
Quelque chose comme ça:
select @var1 = avg(someColumn), @var2 = avg(otherColumn)
from theTable
Vous pouvez utiliser l'affectation SELECT pour affecter plusieurs variables. Ce code génère une seule ligne de constantes et attribue chacune à une variable.
SELECT
@var1 = 1,
@var2 = 'Zeus'
Vous pouvez même interroger des tables et effectuer des affectations de cette façon:
SELECT
@var1 = c.Column1,
@var2 = c.Column2,
FROM
Customers c
WHERE c.CustomerID = @CustomerID
Attention: ce code fonctionne comme une boucle while.
Préférez utiliser l'affectation SET plutôt que l'affectation SELECT. Utilisez uniquement l'affectation SELECT lorsque vous envisagez les deux scénarios ci-dessus.
que diriez-vous
SELECT @variableOne = avg(someColumn), @variableTwo = avg(otherColumn) from tblTable
cela fonctionne très bien pour moi.