在sql中
发展壮大离不开广大客户长期以来的信赖与支持,我们将始终秉承“诚信为本、服务至上”的服务理念,坚持“二合一”的优良服务模式,真诚服务每家企业,认真做好每个细节,不断完善自我,成就企业,实现共赢。行业涉及社区文化墙等,在网站建设、营销型网站建设、WAP手机网站、VI设计、软件开发等项目上具有丰富的设计经验。
空值有NULL 和''的形式
当是NULL的时候用 IS NULL判断
当是''的时候用 =''判断
比如
select * from table where enddate IS NULL;
select * from table where str='';
空值null比较特殊能通=或者进行查询能用is null或者is not null进行查询例数据null值用 字段名=1字段名1字段名=null都能条数据检索字段名 is null能检索 所需要查询数据两种!
不能,应该用 is null 来判断。
yyy上面有索引的话非常快的。
alter table xxx modify yyy not null ;
dexter@REPOalter table ts modify id not null ;
alter table ts modify id not null
第 1 行出现错误:
ORA-02296: 无法启用 (DEXTER.) - 找到空值
扩展资料:
undefined表示“未定义”,一个特殊值,通常用于指示变量尚未赋值。对未定义值的引用返回特殊值“未定义”。类型定义代码 typeof(undefined) 返回未定义字符串。当将“未定义”转换为字符串时,它转换为空字符串。
“未定义”值与特殊值null(空)相似。事实上,当使用相等运算符对null(空)和“未定义”进行比较时,它们的比较结果为相等。
在这个示例中,变量 x 尚未声明,所以其值为未定义。在代码的第一部分,使用相等运算符 (==) 比较 x 的值与值“未定义”,并将相应的结果发送到输出窗口。在代码的第二部分,使用相等运算符比较值null(空)与“未定义”。
参考资料来源:百度百科-undefined
需要用到循环及动态sql。
如test表中有如下数据,其中id和name列有空值。
执行以下内容:
declare
v_count int;--定义变量
v_col varchar2(20);--定义变量
v_sql varchar2(2000);--定义变量
v_last_col varchar2(20);--定义变量
cursor cur_col is select column_name from user_tab_cols where table_name='TEST' order by column_id;--定义游标
begin
select column_name into v_last_col from user_tab_cols where table_name='TEST' and column_id=(select max(column_id) from user_tab_cols where table_name='TEST');--取出表中最后一个字段放入v_last_col
open cur_col;--打开游标
loop --执行循环
fetch cur_col into v_col;--取出游标内容到变量v_col
v_sql:='select count(*) from TEST where '||v_col||' is null';
execute immediate v_sql into v_count;--执行动态sql
if v_count0--如果查询有空值的字段不为空,则输出此字段名
then
dbms_output.put_line(v_col);
end if;
exit when v_col=v_last_col; --退出循环条件
end loop;--结束循环
close cur_col;--关闭游标
end;
执行结果:
select * from table where A is null and B is not null and B='valueB'
这里是用这种方法选出来,还可以用nvl函数先将空值设为某个值(这个值需要根据具体情况定,以保证A和B不相等)后再进行比较,select * from table where nvl(A,1)B
其中oracle中null的具体介绍可看一下这个