返回非空或SQL空的varchars

时间:2014-10-27 22:40:06

标签: sql varchar isnullorempty

我在SQL中有一个varchar列。我需要它返回任何有价值的东西。

示例...

select * from students where StudentID <> ''

这是正确的做法吗?我尝试过的不是null但是它返回任何空的东西。

由于

6 个答案:

答案 0 :(得分:2)

我建议使用合并:

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

这会将空值转换为空字符串并禁止它们。这也有限制空字符串的额外好处。

null不等于任何东西,甚至不等于null,因此简单的<>不起作用。

答案 1 :(得分:1)

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

您可以同时定位空格和null。

答案 2 :(得分:0)

有一些叫NOT NULL的东西

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

这有帮助吗?

答案 3 :(得分:0)

试试这个:

从StudentID不为空的学生中选择*

答案 4 :(得分:0)

你必须处理它不单独为空的情况,因为你无法与空值进行比较。它们既不等于也不等于任何其他值(包括null)。 NULL表示&#34;未知值&#34;,因此与任何实际的任何比较都没有意义

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

您可以使用ISNULL(StudentID,'') <> ''(或COALESCE)。但我认为这更有效率。

答案 5 :(得分:0)

尝试使用ISNULL()

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