wie zu SET
Rückgabewert zu neuen query
?Kann den Wert der vorherigen Abfrage setzen
Abfrage wie:
DECLARE @count;
SELECT COUNT(*) FROM a WHERE x = 1;
SET @count = //result_last_query
SELECT * FROM b WHERE z = @count;
wie zu SET
Rückgabewert zu neuen query
?Kann den Wert der vorherigen Abfrage setzen
Abfrage wie:
DECLARE @count;
SELECT COUNT(*) FROM a WHERE x = 1;
SET @count = //result_last_query
SELECT * FROM b WHERE z = @count;
So einfach wie:
SELECT * FROM b
where z=(select count(*) FROM a FROM a WHERE x = 1;)}
Sie benötigen nicht sogar jede Variablendeklaration
Wenn Sie das Suchresultates der SELECT-Abfrage erhalten wollen und die Zeilenanzahl in nächster Anweisung für den Zugriff auf Sie@@rowcount
Beispiel Verwendung verwenden:
Select top 10 * from SomeTable
SELECT @@rowcount
Die erste Abfrage im obigen Skript gibt 10 Zeilen zurück und die zweite Abfrage gibtzurück.
Sie sind fast fertig. Sie können als unten in Abfrage gesetzt:
DECLARE @count INT
SELECT @count = COUNT(*) FROM a WHERE x = 1
SELECT * FROM b WHERE z = @count
Alles, was Sie tun müssen, ist die Variable in der platzieren Abfrage selbst, um den Wert der Variablen mit der Zeilenanzahl festzulegen.
Dann können Sie den Wert der Variablen in der nächsten Abfrage verwenden.
DECLARE @count;
SELECT @count = COUNT(*) FROM a WHERE x = 1;
SELECT * FROM b WHERE z = @count;
Aber, seien Sie vorsichtig, dass die Variable nur während der Ausführung sichtbar sein wird, so dass Sie das gesamte Skript auf einmal, um für die @count
Variable für die letzte Abfrage arbeiten ausführen müssen.
dank gute Lösung
modifizierte ich den Code der Antworten
SELECT *
FROM B
WHERE id IN (
SELECT COUNT(*) AS count
FROM A
WHERE x = 1
)