在SQL中,我们如何检查过滤包含列数据的所有行是空还是空? 对于考试
Select Name,Age from MEMBERS
我们需要一个检查名称不应该等于null或空。
答案 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 =''
找到并继续学习答案 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, '') <> ''