create table test(j varchar2(10),k varchar2(10),l date);
insert into test values('oracle','xun',to_date('2010-11','YYYY-MM'));
insert into test values('java','luxun',to_date('2010-11','YYYY-MM'));
insert into test values('c','xun',to_date('2010-11','YYYY-MM'))
insert into test values('c','xun',sysdate);
insert into test values('java','xun',sysdate);
insert into test values('c++','xun',sysdate);
SELECT b.l 月份, nvl(a.amount, 0) 数量
FROM (select to_char(l, 'mm') l, count(*) amount
from test
group by to_char(l, 'mm')) a,
(SELECT lpad(to_char(LEVEL), 2, '0') l
FROM dual
CONNECT BY LEVEL <= 12) b
WHERE b.l = a.l(+)
ORDER BY b.l;
/*
月份 数量
1 0
2 0
3 0
4 0
5 0
6 0
7 0
8 0
9 0
10 0
11 3
12 0
*/
分享到:
相关推荐
数据字典里存有用户信息、用户的权限信息、所有数据对象信息、表的约束条件、统计分析数据库的视图等。 我们不能手工修改数据字典里的信息。 很多时候,一般的ORACLE用户不知道如何有效地利用它。 dictionary...
10.3.4 与CONNECT BY的不同点 276 10.4 复制CONNECT BY的功能 277 10.4.1 LEVEL伪列 278 10.4.2 SYS_CONNECT_BY_PATH函数 279 10.4.3 CONNECT_BY_ROOT运算符 281 10.4.4 CONNECT_BY_ISCYCLE伪列和NOCYCLE参数 ...
6. **DATE**: 存储日期和时间数据,范围从 -4712年1月1日到 +4712年12月31日。 7. **TIMESTAMP(factional_seconds_precision)**: 存储日期、时间和毫秒级别的精度数据,适用于需要高精度时间记录的场景。 **第二...
- 外键用于建立不同表之间的关联,实现数据之间的参照完整性。通过定义外键,可以确保表间的链接正确无误,避免无效的数据引用。 3. **为什么要对某些字段的取值进行限制?** - 对字段进行限制(如非空约束、唯一...
38. **CONNECT_BY_ROOT**:在层次查询中标识根节点。 39. **ROWNUM**:返回行号,常用于限制查询结果的数量。 40. **RANK()** / **DENSE_RANK()** / **ROW_NUMBER()**:在分组或排序后的行中生成唯一标识符。 41. **...
CONNECT BY LEVEL (SYSDATE - TO_DATE('2010-03-08', 'YYYYMMDD')) * 24 ) SELECT COUNT(*) FROM dates WHERE TO_CHAR(dt, 'DY', 'NLS_DATE_LANGUAGE = AMERICAN') NOT IN ('SATURDAY', 'SUNDAY'); ``` ### 4...
connect by rownum ) union all --增加最大分区 select 'alter table ' || v_minp_rec.table_owner || '.' || v_minp_rec.table_name || ' add partition ' || v_max_part_name || ' values less than ...
(使用order by desc字段 对数据进行降序排列 默认为升序asc); 27、select * from dept where deptno <>10 order by deptno asc; --(我们可以将过滤以后的数据再进行排序) 28、select ename, sal, deptno from ...