2017-07-10 6 views
-2

Ich habe ein Interview vor kurzem besucht, und der Interviewer fragte mich diese Frage:SQL Server-Tabelle Datenabruf

UserId UserName 
1   Name1 
1   Name2 
2   Name3 

Hier will er mich entweder Name1 oder Name2 mit dem Zustand zurückzuholen?

Wie kann ich das Ergebnis erhalten?

Ich schrieb wie

select Username 
from Users 
where Username = 'Name1' or Username = 'Name2' 

aber hier beide Bedingungen erfüllt sind, so dass zwei Datensätze zurückgegeben werden ... Was die Abfrage werden die Daten abzurufen?

+0

Abrufen von Name1 oder Name2 basierend auf welcher Bedingung? –

+0

Ich verstehe nicht, was Sie meinen, indem Sie entweder "Name1" oder "Name2" abrufen. Wenn Sie eine einzelne Zeile abrufen möchten, müssen Sie einen eindeutigen Wert zum Nachschlagen haben. Ist die Erwartung, dass bei "Name1" oder "Name2" die "UserId" zurückgegeben werden kann? Aus den von Ihnen angegebenen Daten besteht die einzige Möglichkeit, eine einzelne Zeile zu erhalten, darin, das Feld "UserName" abzufragen. – DaveyDaveDave

+0

Auch ich nicht, was der Grund hinter dieser Frage In der Tabelle gab er die gleichen Daten, die später hinzugefügt, fragte er mich in Verwendung wo Bedingung, wie Sie Name1 oder Name3 mit UserName Spalte..I nicht Wetter Die Frage ist beantwortbar oder es ist eine falsche Frage –

Antwort

0

Ich glaube, Sie so etwas wie dies bedeuten:

SELECT UserName FROM Users 
WHERE UserName IN(NAME1, NAME2) 
LIMIT 1 

Das wäre irgendwie zufällig die erste wählen Sie stoßen (aus NAME1 und NAME2). Ich gehe davon aus, dass Sie nicht eine bestimmte auswählen müssen, und dass es nicht mehr Instanzen der Namen gibt, die ebenfalls ausgewählt werden müssen, alles gemäß Ihrem Beispiel.

+0

Dies ist meine erste Frage in stackoverflow ich fragte viele Personen, aber ich habe nicht die Antworten, also ich hier gepostet .... Danke für die Antwort ist so LIMIT wird in Sql Server –

+0

hier die Logik ist er will wo Bedingung zu arbeiten auf Name1 und Name3 angewendet werden, aber das Ergebnis sollte einen einzelnen Namen haben, der entweder Name1 oder Name3 ist –

+0

@hareeshbabu Also wäre es nicht genug, Name3 für Name 2 im obigen Code zu ersetzen? –

Verwandte Themen