我在SQL中有一个varchar列。我需要它返回任何有价值的东西。
示例...
select * from students where StudentID <> ''
这是正确的做法吗?我尝试过的不是null但是它返回任何空的东西。
由于
答案 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,'') <> ''