2009-01-22 14 views

cevap

78

şey böyle:

select @var1 = avg(someColumn), @var2 = avg(otherColumn) 
from theTable 
+0

Mükemmel, teşekkürler! – jandersson

1

set 
    @variableOne = avg(someColumn), 
    @variableTwo = avg(otherColumn) 
    from tblTable 

Bu görev gelir önemsiz bir şey için iki ayrı seçme işlemlerini yapmak için biraz savurgan görünüyor

nasıl hakkında

SELECT @variableOne = avg(someColumn), @variableTwo = avg(otherColumn) from tblTable 

Benim için gayet iyi çalışıyor.

9

Birden çok değişken atamak için SEÇİM atamasını kullanabilirsiniz. Bu kod tek bir sabitler dizisi üretir ve her birini bir değişkene atar.

SELECT 
    @var1 = c.Column1, 
    @var2 = c.Column2, 
FROM 
    Customers c 
WHERE c.CustomerID = @CustomerID 

Dikkat: Bu kod, bir süre döngü gibi çalışır Hatta sorgu tabloları can ve atama bu şekilde yapmak

SELECT 
    @var1 = 1, 
    @var2 = 'Zeus' 

.

  • Birden fazla satır varsa, her satır değişkenlere atanır ve son satır orada kalan son satır olacaktır. Bir sipariş belirlemediyseniz, hangi satırın son satır olacağını kontrol etmekten vazgeçtiniz. hiçbir satır varsa
  • , değişkenler hiç atanır edilmeyecektir. Değişkenler null olarak ayarlanmaz - değişmeden kalırlar. Bu ödev (tipik değişkenler asla değişmez olarak sonsuz bir döngüye ile sonuçlanan) bir döngü içinde yapılırsa önemli bir sorundur.

SEÇ atama üzerinde SET atama kullanarak tercih edin. Yukarıdaki iki senaryoyu da dikkate alarak sadece SELECT görevini kullanın.

İlgili konular