2016-12-19 1 views

Antwort

2

So einfach wie:

SELECT * FROM b 
    where z=(select count(*) FROM a FROM a WHERE x = 1;)} 

Sie benötigen nicht sogar jede Variablendeklaration

0

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.

0

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 
0

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.

1

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 
      ) 
Verwandte Themen