`
53873039oycg
  • 浏览: 843782 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

[简单]oracle with中union all使用简单示例

 
阅读更多

        今天在plsql中使用with时候用了union。sql如下

       

with a as
 (select to_date('2014-01-02', 'yyyy-mm-dd') startDate, 2 v_num from dual union
  select to_date('2014-01-06', 'yyyy-mm-dd') startDate, 1 v_num from dual union
  select to_date('2014-01-06', 'yyyy-mm-dd') startDate, 2 v_num from dual union
  select to_date('2014-01-06', 'yyyy-mm-dd') startDate, 1 v_num from dual union
  select to_date('2014-01-06', 'yyyy-mm-dd') startDate, 2 v_num from dual)
  select count(1),startDate from a group by startDate

      结果如下

    

     看到这个结果很惊讶,而是使用

    

  select * from a order by startDate,v_num

    看了下,结果为

   

        一开始还以为是with过滤掉了重复值,后来想到自己用错了,如果先保留重复值,不能使用union,必须使用union all.如下

      

with a as
 (select to_date('2014-01-02', 'yyyy-mm-dd') startDate, 2 v_num from dual union all
  select to_date('2014-01-06', 'yyyy-mm-dd') startDate, 1 v_num from dual union all
  select to_date('2014-01-06', 'yyyy-mm-dd') startDate, 2 v_num from dual union all
  select to_date('2014-01-06', 'yyyy-mm-dd') startDate, 1 v_num from dual union all
  select to_date('2014-01-06', 'yyyy-mm-dd') startDate, 2 v_num from dual)
  select * from a order by startDate,v_num

    结果为

   

 

      有些知识很久不用很容易忘记,特此记录

      全文完

  

  • 大小: 14.9 KB
  • 大小: 9.7 KB
  • 大小: 16.3 KB
0
0
分享到:
评论

相关推荐

    Oracle层次查询和with函数的使用示例

    在这个例子中,WITH子句定义了一个名为dept_hierarchy的公共子查询,它首先选择了所有顶级部门(fparent IS NULL),然后通过UNION ALL与自身连接,将所有子部门添加进来,直到遍历完整个部门树。 总结来说,Oracle...

    理解oracle中的外连接

    全外连接在比较两个数据集并显示所有可能的数据时非常有用,但Oracle数据库不直接支持全外连接,需要通过UNION ALL或自连接来模拟。 模拟全外连接的示例: ```sql SELECT columns FROM (table1 LEFT OUTER JOIN ...

    oracle转DB2 对照

    - 注意点: Oracle使用 `START WITH` 和 `CONNECT BY` 进行层次查询,而DB2使用 `WITH RECURSIVE` 子句。 #### 9. 打印输出信息 - **Oracle** 和 **DB2** 都支持打印输出信息。 - Oracle示例: ```sql DBMS_...

    Oracle 开发DBA SQL编写规范

    - 尽量避免在`where`子句中使用函数,这可能会导致索引失效。 - 示例: ```sql -- 错误示例 select * from tab1 where lower(col1) = 'value'; -- 正确示例 select * from tab1 where col1 = 'VALUE'; ``` #...

    Oracle 递归函数介绍

    UNION ALL SELECT d.user_name, d.dep_name, d.report_name, d.age FROM t_dept_hp d JOIN dept_hp p ON d.report_name = p.user_name ) SELECT * FROM dept_hp; ``` 这将查询出 allen 的整个组织结构,包括所有...

    ORACLE与SQLSERVER语法差异分析

    - 在SQL SERVER中,递归查询通常使用`WITH`子句创建公共表表达式(CTE),结合`UNION ALL`和`JOIN`来实现。如示例所示,`cte_root`或`cte_child`定义递归起点,`connect by ID=prior ParentID`表示递归路径。 - ...

    在ORACLE、MSSQL、MYSQL中树结构表递归查询的实现.pdf

    随着MYSQL版本的更新,尤其是MYSQL 8.0之后,开始支持公用表表达式(CTE)和WITH RECURSIVE语法,这使得在MYSQL中进行递归查询变得简单而直接。 在上述三种数据库系统中实现递归查询的示例代码通常如下: ORACLE中...

    Oracle高级SQL培训与讲解

    这里,`WITH`子句`a`定义了一个临时视图,用于筛选出部门名称包含"A"的所有部门编号,然后在主查询中使用这个结果来获取符合条件的员工信息。 #### 四、WITH子句的应用场景 **4.1 测试SQL语句** 当需要测试特定的...

    oracle树状查询

    UNION ALL SELECT d.id, d.parent_id, d.name FROM department d JOIN tree t ON d.parent_id = t.id ) SELECT * FROM tree; ``` 这里的`:root_id`是树的根节点ID。 三、层次查询 (CONNECT BY) Oracle特有的...

    ORACLE 合辑

    - 示例:`WITH RECURSIVE cte (id, parent_id, level) AS (SELECT id, parent_id, 1 FROM table WHERE parent_id IS NULL UNION ALL SELECT t.id, t.parent_id, cte.level + 1 FROM table t JOIN cte ON t.parent_id...

    Oracle 11GR2的递归WITH子查询方法

    Oracle 11GR2的递归WITH子查询是一种强大的工具,它允许你在SQL查询中创建递归关系,处理层级数据,比如组织结构、家族树或依赖关系等。WITH子查询,也称为公共表表达式(Common Table Expression,简称CTE),自SQL...

    Oracle11g学习笔记五

    在学习Oracle 11g的过程中,了解和掌握集合操作以及序列的使用是非常关键的知识点。 集合操作在数据库查询中扮演着重要的角色。Oracle 11g支持四种基本的集合操作:UNION、UNION ALL、INTERSECT和MINUS。这些操作...

    Oracle考试必备知识

    - `UNION ALL`:返回两个查询结果集的并集,不自动去重。 - `INTERSECT`:返回两个查询结果集的交集。 - `MINUS`:返回第一个查询结果集中不在第二个查询结果集中的行。 6. **SQL函数**: - `DECODE()`:条件...

    ORC_SELECT.rar_oracle_select orac

    关于“不符合统计的统计方法”,这可能是指在Oracle SQL中使用非标准的聚合函数或者自定义统计计算。比如,可能需要计算某个列的中位数,而Oracle的标准函数并不提供这个功能。这时,我们需要自定义SQL语句或者创建...

    oracle从入门到精通.pdf

    3. **表达式的使用**:可以在SQL语句中使用数学运算符来处理数字和日期字段。 4. **NULL值处理**:NULL值表示未知或缺失的数据。 5. **别名**:使用AS关键字为表或列指定别名,以提高查询的可读性。 6. **SPPOOL命令...

    Oracle 开发经验

    - **原理**:索引能够加速数据的查找过程,尤其是在WHERE子句和ORDER BY子句中使用的列。 - **实践**:例如,在查询`SELECT * FROM table WHERE column = value ORDER BY another_column;`时,如果在`column`和`...

    Oracle通过递归查询父子兄弟节点方法示例

    首先,递归查询在Oracle中主要依赖于`START WITH`和`CONNECT BY`子句。`START WITH`指定查询的起始节点,而`CONNECT BY`定义了如何在层级结构中移动,通常与`PRIOR`关键字一起使用,表明当前行的父节点是前一行的...

    MySQL多种递归查询方法.docx

    - 使用`UNION ALL`结合`JOIN`操作实现递归。 - 示例略。 - **存储过程法**: - 创建存储过程,使用循环结构和条件判断来实现递归。 - 示例略。 **结论**: 虽然MySQL没有提供类似于Oracle的内置递归查询功能,但...

    超详细ORACLE培训带实例带书签目录

    - **UNION和UNION ALL**:合并多个查询结果。 #### 第七章 子查询 - **简单子查询**:使用IN、=、等操作符的子查询。 - **比较子查询**:使用>、<等操作符的子查询。 - **EXISTS子查询**:使用EXISTS关键字进行...

Global site tag (gtag.js) - Google Analytics