NICHT IN-Bedingung in SQL

8

Kann jemand mir die genaue Syntax für NOT IN Bedingung in SQL auf zwei Spalten sagen.

Dies ist meine Abfrage in VBA geschrieben.

%Vor%

Ich möchte diese Unterabfrage wie folgt ändern, sie sollte wie folgt auf die Kombination zweier Spalten angewendet werden:

%Vor%

Aber das funktioniert nicht .....

    
user397316 16.11.2010, 18:16
quelle

6 Antworten

18

Sie können IN nicht mit mehr als einer Spalte verwenden, aber Sie können den gleichen Effekt normalerweise mit EXISTS erreichen:

%Vor%     
Daniel Renshaw 16.11.2010, 18:20
quelle
4

Allgemeine Syntax:

%Vor%

Elemente können

sein
  • eine Liste von Elementen - (4,5,3,5,2) oder ('243','3','cdds') oder ein anderer Datentyp.

  • Oder eine Select-Anweisung (select hatefulthings from table)

Zusatz 6 Jahre später

Alle wichtigen Plattformen unterstützen Tupel mit NOT IN, zum Beispiel

%Vor%

In diesem Beispiel wählen wir alles aus der Mitarbeitertabelle aus, in der sich das Tupel der Mitarbeiter-ID und das Datum nicht in einer Tabelle mit Urlaubstagen befinden.

    
Hogan 16.11.2010 18:20
quelle
3

Ihre Frage ist ein wenig unklar. Ist das was du brauchst?

%Vor%

Dies zeigt Ihnen alle Datensätze, in denen sich die Suchphrase ("Smith") weder in der Spalte first_name noch in last_name befindet.

    
JosephStyons 16.11.2010 18:21
quelle
1

Vielleicht meintest du

%Vor%

Dies ist unter Oracle erlaubt - nicht sicher über SQL Server.

Teilen und genießen.

    
Bob Jarvis 16.11.2010 18:30
quelle
0
%Vor%

Ich habe gesehen, wo Sie angegeben haben, dass dies für Access

war     
JeffO 16.11.2010 18:53
quelle
0

Es ist nicht klar, was Sie fragen, aber ich nehme an, dass Sie eine NOT IN-Bedingung basierend auf zwei Spalten anstatt nur einer haben möchten.

Nehmen wir als Beispiel an, Sie haben eine Spalte mit dem Namen F_Name und eine andere mit dem Namen L_Name (beide in der Größe variabel) und möchten eine bestimmte Kombination dieser Namen aus einer anderen Tabelle ausschließen, in der sie bereits als NAME zusammengefasst sind. In diesem Fall könnten Sie dies tun:

%Vor%

Das Hauptproblem bei dieser Abfrage ist, dass Sie die Formatierung genau richtig haben müssen, damit sie genau übereinstimmen können.

Wenn Sie mit einer Kombination von Feldern unterschiedlicher Typen arbeiten, z. B. numerische und Zeitstempel, dann verwenden Sie einen der Konvertierungsbefehle (DECIMAL, INTEGER, CHAR, SUBSTR ...), um sie in Text gleich und dann zu konvertieren passen Sie es entsprechend an.

    
PatrickP61 16.11.2010 19:06
quelle

Tags und Links