2017-07-27 24 views
0

Ich habe meine Tabelle mit Spalten - PersonID, Vorname, Nachname, Stadt, Alter und WorkStatus. Schreiben Sie die BETWEEN IN-Syntax mit der WHERE-Bedingung, sie gibt keine Zeilen zurück, gibt aber keinen Fehler.ZWISCHEN IN in SQL

SELECT PersonID,FirstName,LastName,City,age,WorkStatus 
FROM sakila.my_own 
WHERE (FirstName BETWEEN 'Omer' AND 'Amrah') 
AND NOT WorkStatus IN ('Unemployee'); 

Warum macht es das? Wenn jemand eine Antwort hat, bitte teilen Sie mit mir. Vielen Dank im Voraus für die Antworten.

+1

zur Verwendung von LIKE Operator BETWEEN Zustand ändern - Was Sie 'erwarten Vorname zwischen‚Omer‘UND‚Amrah'' zu machen ? – ayush

+1

Evtl. https://stackoverflow.com/questions/5980783/sql-between-clause-with-strings-columns – ffeast

Antwort

-1

Sie vergleichen die Zeichenfolge mit BETWEEN.

Also offensichtlich wird es nicht als numerisches oder Datumsfeld vergleichen.

SELECT PersonID,FirstName,LastName,City,age,WorkStatus 
    FROM sakila.my_own 
    WHERE (FirstName BETWEEN 'Omer' AND 'Amrah') 

syntaktisch korrekt ist, aber nicht semantisch korrekt:

Und noch etwas

AND NOT WorkStatus IN ('Unemployee'); 

Statt dessen Sie

AND WorkStatus NOT IN ('Unemployee'); 
-1

Sie abfragen, um zu setzen haben. Genauer gesagt ergibt die Klausel: FirstName BETWEEN 'Omer' AND 'Amrah' immer eine leere Menge, da 'Omer' > 'Amrah', String-weise. Versuchen: Erklären Sie uns etwas in einfachem Englisch

FirstName BETWEEN 'Amrah' AND 'Omer' 
+0

Bei Downvotern: Ich würde wirklich schätzen, wenn Sie den Downvote rechtfertigen könnten. – apomene

-1

Sie sollten diese wie

WHERE FirstName LIKE '%Omer%' Or FirstName LIKE '%Amrah%' 
AND WorkStatus <> 'Unemployee';