`
Zhijie.Geng
  • 浏览: 56378 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

oracle常用SQL语句

阅读更多

1.查询重复数据行:

 

select code

         from TableName

        group by code

        having count(code) > 1;

 

2.oracle 中查询某一列后,将多列数据转换为字符串

 

方法一:

 

 

--依次创建以下函数
CREATE OR REPLACE FUNCTION stragg(input varchar2) RETURN varchar2
  PARALLEL_ENABLE
  AGGREGATE USING string_agg_type;
--1
CREATE OR REPLACE TYPE "STRING_AGG_TYPE" as object
(
  total varchar2(4000),
  static function ODCIAggregateInitialize(sctx IN OUT string_agg_type)
    return number,
  member function ODCIAggregateIterate(self  IN OUT string_agg_type,
                                       value IN varchar2) return number,
  member function ODCIAggregateTerminate(self        IN string_agg_type,
                                         returnValue OUT varchar2,
                                         flags       IN number)
    return number,
  member function ODCIAggregateMerge(self IN OUT string_agg_type,
                                     ctx2 IN string_agg_type) return number
)
--2
create or replace type body string_agg_type is
  static function ODCIAggregateInitialize(sctx IN OUT string_agg_type)
    return number is
  begin
    sctx := string_agg_type(null);
    return ODCIConst.Success;
  end;
  member function ODCIAggregateIterate(self  IN OUT string_agg_type,
                                       value IN varchar2) return number is
  begin
    self.total := self.total || ',' || value;
    return ODCIConst.Success;
  end;
  member function ODCIAggregateTerminate(self        IN string_agg_type,
                                         returnValue OUT varchar2,
                                         flags       IN number) return number is
  begin
    returnValue := ltrim(self.total, ',');
    return ODCIConst.Success;
  end;
  member function ODCIAggregateMerge(self IN OUT string_agg_type,
                                     ctx2 IN string_agg_type) return number is
  begin
    self.total := self.total || ctx2.total;
    return ODCIConst.Success;
  end;
end;

---------------------------------------
--测试如下:
create table t_number
(id  number)

insert into t_number(id)
values(1);
commit;
insert into t_number(id)
values(2);
commit;
insert into t_number(id)
values(3);
commit;
insert into t_number(id)
values(4);
commit;
insert into t_number(id)
values(5);
commit;

--修改前:
select * from t_number;

   id
1  1
2  2
3  3
4  4
5  5

--修改后:
select stragg(distinct id) id from t_number;

   id
1  1,2,3,4,5

 

方法二:(此方法有字符串长度的限制)

 

注意:测试数据库表同上

 


 select max(sys_connect_by_path(id, ',')) as book_types

   from (select a.id, rownum ro

           from (select distinct u.id

                   from t_number u

                 

                 ) a) newtab

  start with newtab.ro = 1

 connect by prior newtab.ro = newtab.ro - 1;

 

 

 

 

 

3. 运行中创建表:create table rowconcat as select distinct BUSS_TYPE from t_tybook_before_bookspecial;

 

4.  Oracle高级查询之OVER (PARTITION BY ..)

 

引自【http://blog.csdn.net/ayou2008/article/details/7179001

rank()/dense_rank() over(partition by e.deptno order by e.sal desc)语法:

over:  在什么条件之上。

partition by e.deptno:  按部门编号划分(分区)。
order by e.sal desc:  按工资从高到低排序(使用rank()/dense_rank() 时,必须要带order by否则非法)
rank()/dense_rank():  分级
整个语句的意思就是:在按部门划分的基础上,按工资从高到低对雇员进行分级,“级别”由从小到大的数字表示(最小值一定为1)。 

那么rank()和dense_rank()有什么区别呢?
rank():  跳跃排序,如果有两个第一级时,接下来就是第三级。
dense_rank():  连续排序,如果有两个第一级时,接下来仍然是第二级。

 

5. Oracle函数Rank Over Partition使用实例详解(一)

 

引自【http://zhaisx.iteye.com/blog/774165

 

 

6. Oracle语法之OVER(PARTITION BY)及开窗函数【转载】

   引自【http://zou-qiang.iteye.com/blog/1306246

 

 

7.查询每个月的第一天和最后一天

          select last_day(add_months(sysdate,-1))+1 as firstday ,last_day(sysdate) as lastday from dual;

 

 

 

 

分享到:
评论

相关推荐

    ORACLE常用SQL语句大全.pdf

    Oracle 常用 SQL 语句大全 本文档总结了 Oracle 中常用的 SQL 语句,包括数据库的创建、删除、备份、表的创建、删除、修改、索引的创建、视图的创建等基本操作,以及一些高级查询运算符的使用。 一、数据库操作 ...

    oracle常用SQL语句(汇总版).docx

    Oracle 常用 SQL 语句汇总 Oracle 是一个功能强大且复杂的关系数据库管理系统,它提供了多种 SQL 语句来管理和操作数据库。在本文中,我们将详细介绍 Oracle 中常用的 SQL 语句,包括数据控制语句(DML)、数据定义...

    oracle常用sql语句

    oracle常用sql语句

    ORACLE 常用SQL语句

    ORACLE 常用 SQL 语句 ORACLE 是一种关系数据库管理系统,它提供了多种 SQL 语句来操作和管理数据库。下面将 Introduced 13 种常用的 ORACLE SQL 语句,涵盖字符串处理、数据搜索和修改等方面。 1. ASCII 函数 ...

    oracle常用sql语句大全 注释完整 放心使用

    本资料集包含了Oracle数据库中常用SQL语句的大全,注释完整,非常适合初学者和有经验的开发者参考使用。 1. **数据查询(SELECT语句)**: - `SELECT * FROM table_name;`:查询表table_name中的所有列。 - `...

    Oracle常用SQL语句复习

    本篇将基于"Oracle常用SQL语句复习"这一主题,深入探讨Oracle SQL的基本语法和常用操作,帮助读者巩固和提升Oracle数据库操作技能。 1. **数据查询基础** - `SELECT`语句是SQL中最基本的查询命令,用于从一个或多...

    oracle常用SQL语句(汇总版).zip

    本文件"oracle常用SQL语句(汇总版)"将对Oracle中的常用SQL语法进行详尽阐述。 1. 数据查询: - `SELECT`语句:这是SQL中最基本的查询语句,用于从表中检索数据。例如,`SELECT * FROM 表名;`将返回表中的所有记录...

    Oracle常用SQL语句

    Oracl 常用SQL语句 Oracle基础语句

    ORACLE常用SQL语句大全.doc

    ORACLE常用SQL语句大全.doc

    个人整理的oracle常用sql语句整理分享

    个人整理的oracle常用sql语句整理分享

    ORACLE常用SQL语句大全.docx

    ORACLE 常用 SQL 语句大全 本文档总结了 ORACLE 中常用的 SQL 语句,包括创建数据库、删除数据库、备份数据库、创建表、删除表、增加列、删除列、添加主键、创建索引、创建视图等基本操作。同时,也涵盖了高级查询...

    Oracle常用的SQL语句维护

    本文将深入探讨Oracle中常用的SQL语句以及与数据库表空间相关的维护知识。 首先,让我们了解如何在Oracle中创建表空间。表空间是Oracle数据库中存储数据的逻辑单位,它由一个或多个数据文件组成。创建表空间的SQL...

    oracle常用SQL语句下载

    Oracle SQL是用于管理和操作Oracle数据库的强大工具,它包含多种用于数据查询、操作、定义和控制的语句。本文将深入探讨Oracle SQL中的常见查询和计算功能。 首先,SQL(Structured Query Language,结构化查询语言...

    Oracle Sql语句转换成Mysql Sql语句

    本项目提供了一个Java源码工具,能够帮助用户便捷地将Oracle SQL语句转换为MySQL SQL语句。 Oracle SQL与MySQL SQL的主要差异在于以下几个方面: 1. **数据类型**:Oracle支持的数据类型如NUMBER、LONG、RAW等在...

    Oracle数据库sql语句 跟踪器

    Oracle数据库SQL语句跟踪器,通常被称为SQL Monitor,是一种强大的工具,用于监控和分析数据库中的SQL语句执行情况。在Oracle环境中,理解SQL语句的行为是优化数据库性能的关键。SQL Monitor提供实时视图,帮助DBA...

    压测Oracle的SQL语句的性能情况

    本文将深入探讨如何利用压力测试工具来评估和优化Oracle数据库中的SQL语句性能。 标题"压测Oracle的SQL语句的性能情况"暗示了我们关注的是在高负载情况下,Oracle数据库处理SQL查询的能力。压力测试(Pressure ...

    mysql和oracle和sql语句

    在文件名中提到的"oracle常用sql语句.txt"可能包含Oracle的一些常见操作,如`SELECT`用于查询,`INSERT INTO`用于插入数据,`UPDATE`用于修改记录,`DELETE FROM`用于删除记录,以及`ALTER TABLE`用于修改表结构等。...

Global site tag (gtag.js) - Google Analytics