2017-02-01 2 views
1

Ich habe einen Blick (A), die 9 Zeilen enthält, wenn Sie die folgende Abfrage ausgeführt wird:SQL Query Ergebnis ist falsch

SELECT * 
FROM A 
WHERE card_num_full is null OR card_num_full LIKE '' 

Tabelle B nicht, diese 9 Zeilen enthält, also warum, wenn Sie die folgende Abfrage ausgeführt wird, ich bekomme ich immer noch 9 Zeilen?

SELECT * 
FROM A 
WHERE card_num_full is null OR card_num_full LIKE '' 
     AND field_1 IN 
     (SELECT field_1 
     FROM B) 
+3

das Ergebnis ist nie falsch. die Fragen sind :) – NicoRiff

+0

@NicoRiff LOL! richtig. Was mache ich falsch? –

+0

JohnHC Antwort ist richtig – NicoRiff

Antwort

2

Bracket Ihre or

SELECT * 
FROM A 
WHERE (card_num_full is null 
    or card_num_full like '') 
and field_1 in (select field_1 from B) 
+1

so einfach..so traurig ... 10x Ich werde es als Antwort in 8 Minuten akzeptieren. Das kann ich nicht früher machen –

1

Sie ISNULL() Funktion verwenden können, sind keine Klammern erforderlich.

SELECT * 
FROM A WHERE isnull(card_num_full,'') like '' 
    and field_1 in 
     (select field_1 from B)