2017-07-27 55 views
0

我有my_own表與列 - PersonID,名,姓,城市,年齡和WorkStatus。在BETWEEN語句中寫入WHERE條件,它不會返回任何行,但不會給出任何錯誤。BETWEEN in SQL

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

爲什麼這樣做?如果任何人有任何答案,請與我分享。 在此先感謝您的答案。

+1

解釋給我們簡單的英語 - 什麼你期望'姓「奧馬爾」與「Amrah''之間做做什麼? – ayush

+1

可能重複https://stackoverflow.com/questions/5980783/sql-between-clause-with-strings-columns – ffeast

回答

-1

您在使用BETWEEN比較字符串。

所以顯然它不會比較它作爲數字或日期字段。

還有一件事

AND NOT WorkStatus IN ('Unemployee'); 

取而代之的是你必須把

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

您查詢:

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

在語法上是正確的,但不是語義正確。更具體地說,條款:FirstName BETWEEN 'Omer' AND 'Amrah'將始終導致一個空集,因爲'Omer' > 'Amrah',字符串明智。嘗試:

FirstName BETWEEN 'Amrah' AND 'Omer' 
+0

在downvoters:我真的很感激,如果你能證明downvote的理由。 – apomene

-1

你應該改變BETWEEN條件使用LIKE運營商像

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