数据校验脚本-检验null值
来源:互联网 发布:安卓鼓机软件 编辑:程序博客网 时间:2024/05/01 10:12
在做数据校验,需要检验多个字段是否为Null值,那怎么可以写的高效,如下例子:
drop table T1 purge;
create table T1(
ID NUMBER,
OWNER VARCHAR2(30),
OBJECT_NAME VARCHAR2(128),
OBJECT_TYPE VARCHAR2(19),
STATUS VARCHAR2(7)
);
insert into t1 (ID, OWNER, OBJECT_NAME, OBJECT_TYPE, STATUS)
values (1, 'SYS', 'ICOL$', 'INDEX', 'VALID');
insert into t1 (ID, OWNER, OBJECT_NAME, OBJECT_TYPE, STATUS)
values (2, '', 'I_USER1', 'INDEX', 'VALID');
insert into t1 (ID, OWNER, OBJECT_NAME, OBJECT_TYPE, STATUS)
values (3, 'SYS', 'CON$', '', '');
insert into t1 (ID, OWNER, OBJECT_NAME, OBJECT_TYPE, STATUS)
values (4, 'SYS', 'UNDO$', 'TABLE', '');
insert into t1 (ID, OWNER, OBJECT_NAME, OBJECT_TYPE, STATUS)
values (5, 'SYS', '', '', 'VALID');
commit;
col ID format a5;
col OWNER format a15;
col OBJECT_NAME format a15;
col OBJECT_TYPE format a15;
col STATUS format a10;
select to_char(ID) id, OWNER, OBJECT_NAME,
OBJECT_TYPE, STATUS from T1;
ID OWNER OBJECT_NAME OBJECT_TYPE STATUS
----- ------- ------------- ------------ -------
1 SYS ICOL$ INDEX VALID
2 I_USER1 INDEX VALID
3 SYS CON$
4 SYS UNDO$ TABLE
5 SYS VALID
select id, 'OWNER' null_col from T1 where owner is null
union all
select id, 'OBJECT_NAME' null_col from T1 where OBJECT_NAME is null
union all
select id, 'OBJECT_TYPE' null_col from T1 where OBJECT_TYPE is null
union all
select id, 'STATUS' null_col from T1 where STATUS is null;
ID null_col
-- --------
2 owner
3 OBJECT_TYPE
3 STATUS
4 STATUS
5 OBJECT_NAME
5 OBJECT_TYPE
with T2 as(
select 'OWNER' colname from dual
union all
select 'OBJECT_TYPE' colname from dual
union all
select 'STATUS' colname from dual
union all
select 'OBJECT_NAME' colname from dual
) ,TT as(select id,
decode(OWNER, null, 'OWNER') OWNER,
decode(OBJECT_NAME, null, 'OBJECT_NAME') OBJECT_NAME,
decode(OBJECT_TYPE, null, 'OBJECT_TYPE') OBJECT_TYPE,
decode(STATUS, null, 'STATUS') STATUS
from T1)
select tt.id, t2.colname
from tt, t2
where tt.OWNER = t2.colname
or tt.OBJECT_NAME = t2.colname
or tt.OBJECT_TYPE = t2.colname
or tt.STATUS = t2.colname;
ID null_col
-- --------
2 owner
3 OBJECT_TYPE
3 STATUS
4 STATUS
5 OBJECT_NAME
5 OBJECT_TYPE
网上牛人是这么写的,unpivot可以过滤null的数据:
select id,col
from ( select id
,nvl2(owner,null,1) owner
,nvl2(object_name,null,1) object_name
,nvl2(object_type,null,1) object_type
,nvl2(status,null,1) status
from t1
)
unpivot (val for col in (owner,object_name,object_type,status));
select id,col
from t1
unpivot INCLUDE NULLS (val for col in (owner,object_name,object_type,status))
where val is null;
0 0
- 数据校验脚本-检验null值
- 一行awk脚本实现hex文件校验和的检验
- Struts2数据校验(2)--使用XWork检验框架实现校验
- struts2的校验,检验email
- struts2的校验,检验email
- 数据层NULL值
- eclipse null 校验问题
- orcale基本函数1_--NULL值校验
- 重庆退料校验SQL(待检验)
- CRC检验与ARP脚本
- struct 数据检验器
- R_数据正态分布检验
- 数据分析检验
- 数据校验
- 数据校验
- 数据校验
- 数据校验
- 数据校验
- MIPI接口
- linux下如何编译c++工程项目
- 排序之快速排序java版
- ScaleAnimation动画
- 《python计算机视觉编程》读书笔记------4(Numpy篇)
- 数据校验脚本-检验null值
- Android客户端与服务端交互的三种方式
- 【机房重构个人版】DataGridView显示数据
- docker 导入下载模板
- mysqlworkbench修改中文乱码的地方
- 一种类型安全的Java HTTP客户端库Retrofit
- 【C/C++】C语言union(联合体 共用体)
- JFinal中的ActiveRecord
- springMVC拦截器HandlerInterceptor初步理解事例