2014-10-27 79 views
1

我在SQL中有一列是varchar。我需要它返回任何有價值的東西。返回不爲空或空的varchars SQL

例...

select * from students where StudentID <> '' 

這是做它的正確方法是什麼?我試過的不是null,但是它返回的東西也是空的。

感謝

+0

只注意到你說「不空」返回空的東西,以及。 。 。它適用於我,但也許你在該領域也有一些空白。在這種情況下,您需要修剪空白。 。 。 – 2014-10-27 22:45:49

回答

2

我會建議使用聚結:

select * from students where coalesce(StudentID, '') <> '' 

這將轉空爲空字符串,並禁止他們。這還有限制空字符串的額外好處。

空不等於任何東西,甚至沒有空,所以簡單的<>不起作用。

0

有一些電話NOT NULL

SELECT LastName,FirstName,Address FROM Persons WHERE Address IS NOT NULL 

是幫助?

0

試試這個:

SELECT * FROM學生那裏StudentID不爲空

1
select * from students where StudentID <> '' AND StudentID IS NOT NULL 

您可以同時指定空白和空白。

0

您必須處理不單獨爲空的情況,因爲您無法與空值進行比較。他們既不平等也不等於任何其他價值(包括零)。 NULL的意思是「未知值」,因此與任何實際任何比較是沒有意義的

.... 
WHERE StudentID IS NOT NULL AND StudentID <> '' 

你可以使用ISNULL(StudentID,'') <> ''(或COALESCE)。但我認爲這樣更有效率。

0

嘗試使用ISNULL()

select * from student where isnull(studentid,'') <> ''