Forums Neueste Beiträge
 

SELECT @variable=Spalte

29/09/2009 - 09:28 von Lutz Uhlmann | Report spam
Hallo NG!

Mal eine Frage ...

Ich weise in verschiedenen Situatuionen Variablen Werte über SELECT-Abfragen der Art:
SELECT @Var1=Spalte1,@Var2=Spalte2 FROM Tabelle WHERE Spalte3=Wert
zu.

Was passiert eigentlich, wenn der SELECT mehrere Datensàtze zurückliefert? Werden dann die Werte des
erstenDatensatzes in die Variablen geschrieben? Die des letzeten? Oder ist das Verhalten in so einem
Fall undefiniert???

Kann ich in so einem Fall Ordnung über eine Sortierung und TOP(1) reinbringen???
SELECT TOP(1) @Var1=Spalte1,@Var2=Spalte2 FROM Tabelle WHERE Spalte3=Wert ORDER BY Spalte4


MhG Lutz

 

Lesen sie die antworten

#1 Christa Kurschat
29/09/2009 - 09:45 | Warnen spam
Hallo Lutz,

"Lutz Uhlmann" schrieb im Newsbeitrag
news:%
Hallo NG!

Mal eine Frage ...

Ich weise in verschiedenen Situatuionen Variablen Werte über
SELECT-Abfragen der Art:
SELECT @Var1=Spalte1,@Var2=Spalte2 FROM Tabelle WHERE Spalte3=Wert
zu.

Was passiert eigentlich, wenn der SELECT mehrere Datensàtze zurückliefert?
Werden dann die Werte des erstenDatensatzes in die Variablen geschrieben?
Die des letzeten? Oder ist das Verhalten in so einem Fall undefiniert???




In dem Fall steht der letzte Wert in der Variablen.

Kann ich in so einem Fall Ordnung über eine Sortierung und TOP(1)
reinbringen???
SELECT TOP(1) @Var1=Spalte1,@Var2=Spalte2 FROM Tabelle WHERE Spalte3=Wert
ORDER BY Spalte4



Wenn Du einen bestimmten Wert brauchst, entweder mit Top1 und Sortierung,
dann bekommst Du den 1 Datensatz oder mit Wherebedingung für einen
bestimmten.

Gruß
Christa
Access-FAQ: http://www.donkarl.com
SQL-Server-FAQ: www.sqlfaq.de
InsideSql: www.insidesql.org

Ähnliche fragen