t-sql - Unterabfrage in eine variable

Ich kann nicht scheinen, um herauszufinden, wie die Belastung der Wert, der zurückgegeben wird, durch den folgenden Ausdruck/Unterabfrage in eine variable:

declare @var int
set @var = null

  IF @var IS NULL
SELECT @var = t.col_one
    FROM my_table t
    WHERE t_datetime = (SELECT MAX(t_datetime) FROM t WHERE t.col_two = 1)

Wie kann ich laden Sie das Ergebnis des Ausdrucks in der variable?

Habe ich aktualisiert, der code entsprechend Antworten aber das Problem hat weiterhin Bestand. Es gibt keine Fehler, aber später in meinem sproc, wenn ich rufe @var ist die variable noch null. Was bedeutet dies immer noch nicht funktioniert. Später im code, den ich verwende:

t.col_three = @var

Weiter ich bin nicht mit t.col_three = @var or @var is null da die variable nicht null sein darf:

  • Sie bekommen eine Fehlermeldung? Wenn ja, was? Das sollte funktionieren, solange die Unterabfrage gibt genau eine Zeile und die variable wird einem kompatiblen Datentyp.
  • Keine Fehler. @var ist einfach nicht einlegen/Auffüllen das Ergebnis.
  • Hat die Abfrage einen beliebigen Wert obwohl?
  • Ich Wünsche es nicht... Nein ist es nicht. Weil ich bin nicht mit t.col_three = @var or @var is null nichts zurückgegeben. Wenn ich nicht verwenden, die ist, wird NULL zurückgegeben.
  • Also, werden Sie sagen, dass die Abfrage gibt keine Ergebnisse zurück, wenn Sie lief, ohne die Zuweisung an die variable? Würde es Sinn machen, für die variable zu bleiben NULL wenn das der Fall ist...
  • Vielleicht kannst du das ganze SQL-Skript?

InformationsquelleAutor Computer Guy | 2012-11-16
Schreibe einen Kommentar