如何在SQL中过滤掉包含空数据或空数据的特定列的行?

时间:2008-11-28 09:40:09

标签: sql

在SQL中,我们如何检查过滤包含列数据的所有行是空还是空? 对于考试

Select Name,Age from MEMBERS

我们需要一个检查名称不应该等于null或空。

6 个答案:

答案 0 :(得分:11)

这将适用于所有理智的数据库( wink,wink ),并返回名称不为空也不为空的行

select name,age from members where name is not null and name <> ''

答案 1 :(得分:4)

对于将''视为值(非空)的DBMS,Vinko的查询有效:

select name,age from members where name is not null and name <> ''

对于将''视为null的Oracle,上面的内容不起作用,但确实如此:

select name,age from members where name is not null

我试着想到一个“DBMS不可知”的解决方案,但失败了 - 主要是由于不同DBMS使用不同的连接运算符/函数!

答案 2 :(得分:1)

从MEMBERS中选择名称,年龄,其中name为null或name =''

您可以在http://www.w3schools.com/sql/default.asp

找到并继续学习

答案 3 :(得分:0)

nvl(Name,'some dumb string')如果Name不为null且不同于''(oracle,其他人不知道),这将返回Name。如果为null或等于'',它将等于'some dumb string'。

答案 4 :(得分:0)

取决于所使用的数据库;尝试 从会员中选择姓名,年龄 名称IS NOT NULL

如果您需要过滤其他方式 从会员中选择姓名,年龄 其中名称为IS NULL

某些RDBMS将enpty字符串视为与null不同,您需要添加; 从会员中选择姓名,年龄 其中Name IS NOT NULL 或名称&lt;&gt; ''

答案 5 :(得分:0)

T-SQL

select name,age from members where COALESCE(name, '') <> ''