Oracle中统计契合某列条件的列总和
最近在项目报表中需要一个查询语句,用来统计符合某一列条件的其它几列的个数
比如有下面一个表结构:
需要在列D后面增加一列,统计在列A不为空,并且列B、C、D不为空的个数
经过自己试验,查找帮助,总算实现了上面的查询。
首先讲几个函数的用法:
NULL:指的是空值,或者非法值。
NVL (expr1, expr2)
参数说明:如果expr1为NULL,返回expr2;不为NULL,返回expr1。注意两者的类型要一致
NVL2 (expr1, expr2, expr3)
参数说明:如果expr1不为NULL,返回expr2;为NULL,返回expr3。expr2和expr3类型不同的话,expr3会转换为expr2的类型
NULLIF (expr1, expr2)
参数说明:如果相等返回NULL,不等返回expr1
下面是本人通过两种方法实现的结果
方法一:
代码
1 Select a,
2 b,
3 c,
4 d,
5 Case
6 When a Is Not Null Then
7 Nvl2(b, 1,0) + Nvl2(c, 1,0) + Nvl2(d, 1,0)
8 Else
9 0
10 End E
11 from AA
方法二:
代码
1 Select a,
2 b,
3 c,
4
相关文档:
SQL*Loader 用于将大量数据装入数据库。
⑴、定宽数据
创建数据文件control.txt:
aaa,bbb
ccc,ddd
eee,fff
创建控制文件control.ctl:
load data
infile 'c:\loader.txt'
append
into table tester.mm(
m1 position(1:3) char,
m2 position(5:7) char)
批量加载数据:
sqlldr tester/test control=c:\loade ......
Ubuntu9.04下Oracle手动启动与自启动脚本
一、启动数据库实例
Java代码
gengzhi
@gengzhi
-desktop:~$ su oracle
oracle@gengzhi
-desktop:~$ sqlplus
" scott/tiger as sysdba"
gengzhi@gengzhi-desktop:~$ s ......
今天做了1个数据导入需求,文本记录有12万多条,TXT文件大小6M多,因为以前都是用oracle的text import方式导入,刚试验了一下,不灵验,当导入到2万多条的时候,PLSQL就当掉了,走不动了。
因为考虑到1次导入,所有决定采用SQLLOADER的方式。 ......
sqlplus的配置文件为login.sql,通常如下所示创建该文件:
set serveroutput on size 1000000
set trimspool on --滤除spool输出的空白
set linesize 200 --用于设定每行显示的宽度
set pagesize 9999 --设置显示的页数
set sqlprompt '_user @ _connect_identifier> '
将该文件复制到Oracle安装目录C ......
一、准备特殊数据
create table t_escape(s varchar2(50));
--show define -- define "&" (hex 26)
--show escape -- escape off
set define off
set escape on
insert into t_escape values('string&text');
insert into t_escape values('string\&text');
insert into t_escape values('st ......