2015-04-06 53 views
-2

我有一個等級表,其中每個等級不能爲NULL。每個年級都是一個文本,所以我猜如果列是空的,那麼它是一個空字符串,''。我想選擇等級爲空的列。我在做:空字符串SQL不工作

SELECT student FROM simulated_records WEHRE grade = ' '; 

但這是行不通的,我不明白爲什麼。有沒有正確的做法?我是SQL新手。

+4

它的壞主意來存儲「空」的成績。如果成績未知/未設置,請使用NULL。 – jarlh

+1

SQL查詢中的「where」語句拼寫錯誤。 – WorkSmarter

+2

''''不是一個「空」字符串,它是一個帶有單個(空格)字符的字符串空字符串是'''' –

回答

0

下面將介紹可能存在於數據庫表中的兩種情況。第一個是「空值」,即該值從未設置且允許空值。第二個是空字符串。

SELECT student FROM simulated_records WHERE trim(both from grade) = '' OR grade IS NULL 
+0

修剪字符串將使它適用於空格和空字符串:''其中修剪(從等級)=''或等級爲零' –

+0

好點。我應用了更新。 – WorkSmarter

+0

雖然這會使事情工作,我會建議讓您的列可以爲空,並將列更新爲null,它有一個空白或空字符串。一旦完成使用是空的。 – Tarik

0

如果你想選擇空列的列,那麼你爲什麼要尋找「」?有空的空間。試試這個

SELECT student FROM simulated_records WHERE grade IS NULL; 
0

每個等級不能爲空,因此沒有必要的檢查與「級是NULL」只是做

SELECT student FROM simulated_records WEHRE TRIM(grade) = '';