SQL-Abfrage funktioniert nicht wie erwartet (aus Sicht des Anfängers)

9

Ich versuche, alle Zeilen mit der spezifischen session_id und auch nicht mit 3223 für die Spalte group_with zu bekommen. Also habe ich diese SQL-Anweisung:

%Vor%

Was mir gut aussieht, aber aus irgendeinem Grund gibt es nichts zurück.

In meiner Tabelle habe ich Einträge, die die Kriterien nicht erfüllen sollten. d. h.

session_id=203130570714 | group_with=3225 was sollte zurückgegeben werden. session_id=203130570714 | group_with=NULL , welches zurückgegeben werden soll . session_id=203130570714 | group_with=3223 welche sollte nicht zurückgegeben werden.

Ich habe es versucht:

  1. <> anstelle von !=
  2. NOT (group_with=3223)
  3. group_with NOT LIKE '3223'

Wie bekomme ich alle Zeilen mit der angegebenen session_id und die haben auch eine andere Anzahl als 3223 für die group_with

edit session_id ist varchar und group_with ist int

    
Alexandros 07.08.2014, 11:13
quelle

2 Antworten

5

NULL ist ein spezieller Wert, auf den Sie besonders achten müssen:

%Vor%

Allgemeine Empfehlung

Grundsätzlich ergeben alle Operationen, die NULL als einen Operanden enthalten, NULL als Ergebnis.

%Vor%

NULL wird niemals weder als true noch als false interpretiert und ist daher buchstäblich nutzlos für die Entscheidung, ob eine Zeile in der Ergebnismenge enthalten sein soll oder nicht.

Wenn man eine Spaltendefinition hat, die NULL -Werte zulässt, muss man sich besonders um diese Werte kümmern.

    
GhostGambler 07.08.2014, 11:21
quelle
-1

Wenn SQL Server das folgende versucht: -

Lassen Sie uns das folgende Skript ausprobieren, wenn der Datentyp von session_id und group_with int bedeutet:

%Vor%

Wenn der Datentyp id varchar ist, versuchen Sie das folgende Skript,

%Vor%

Sie erhalten Ihre Ausgabe.

    
RickyRam 07.08.2014 12:04
quelle

Tags und Links