2016-10-11 4 views
-1

Ich habe eine Tabelle (NerdsTable) wie folgt:Erste Aufzeichnungen für unterschiedliche Ergebnisse

--------------+---------------------+-------------- 
    name    school    id 
--------------+---------------------+-------------- 
    Mike    China    5000 
    Joe    Serbia    100 
    Ana    Serbia    100 
    Rats    Khaleesi Land  100 
--------------+---------------------+-------------- 

Wenn ich eine Abfrage wie folgt ausgeben:

select distinct school from dbo.NerdsTable; 

I Ergebnisse zurück:

[china, serbia, Khaleesi Land] 

Wenn ich eine Abfrage wie folgt ausstelle:

select * from dbo.NerdsTable where school = 'china' 

ich Ergebnisse zurück wie folgt aus:

[Mike, China, 5000] 

Was ich will ist eine eindeutige Liste der Schulen tun bekommen, und für jede Schule, zeigen die Schüler: Also habe ich versucht, die zwei Abfragen zu etwas zu kombinieren, wie folgt aus:

select * from dbo.NerdsTable where school = (select distinct school from dbo.NerdsTable); 

Allerdings bekomme ich eine Fehlermeldung, dass:

Subquery returned more than 1 value. 

Der Fehler macht Sinn, aber ich bin nicht sicher, Wie kann ich die SQL-Server-Abfrage anweisen, alle eindeutigen Ergebnisse durchlaufen und führen Sie die SELECT * -Anweisung.

+2

bitte – TheGameiswar

Antwort

1

Sie sollten in Klausel verwenden

select * from dbo.NerdsTable 
where school in (select school from dbo.NerdsTable); 

weil die Schule für subselect mehr sind dann ein

+0

erwartete Ausgabe zeigen ah Sie richtig sind. so ein kleines Zeichen hat mich;) – angryip

+0

'distinct' in dieser' sub-Abfrage' ist ziemlich nutzlos –

+0

@Prdp korrekt .. ich aktualisiere die Antwort .. – scaisEdge

Verwandte Themen