我在 SQL 中有一个列是 varchar。我需要它返回任何有价值的东西。
例子...
select * from students where StudentID <> ''
这是正确的做法吗?我试过不是空的,但它也返回任何空的东西。
谢谢
我在 SQL 中有一个列是 varchar。我需要它返回任何有价值的东西。
例子...
select * from students where StudentID <> ''
这是正确的做法吗?我试过不是空的,但它也返回任何空的东西。
谢谢
我建议使用合并:
select * from students where coalesce(StudentID, '') <> ''
这会将空值转换为空字符串并禁止它们。这也有限制空字符串的额外好处。
一个空值不等于任何东西,甚至不等于另一个空值,所以一个简单的<>
行不通。
select * from students where StudentID <> '' AND StudentID IS NOT NULL
您可以同时定位空白和空值。
尝试使用 ISNULL()
select * from student where isnull(studentid,'') <> ''
您必须单独处理它不为空的情况,因为您无法与空值进行比较。它们既不等于也不不等于任何其他值(包括 null)。NULL
表示“未知值”,因此与任何实际值的任何比较都是没有意义的
....
WHERE StudentID IS NOT NULL AND StudentID <> ''
您可以使用ISNULL(StudentID,'') <> ''
(或COALESCE
)。但我认为这样更有效率。
有一些东西叫 NOT NULL
SELECT LastName,FirstName,Address FROM Persons WHERE Address IS NOT NULL
那有帮助吗?
尝试这个:
从 StudentID 不为空的学生中选择 *