sql语句
文章平均质量分 55
叽哩古哩
这个作者很懒,什么都没留下…
展开
-
oracle中的rownum伪列的使用
第一篇:对于rownum来说它是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数,而且rownum不能以任何表的名称作为前缀。(1) rownum 对于等于某值的查询条件 (具体解释见第二篇)如果希望找到学生表中第一条学生的信息,可以使用rownum=1作为条件。但是想找到学生表中第二条学生的信转载 2015-05-27 15:59:16 · 566 阅读 · 0 评论 -
oracle中表示本周的周日和下周的周日
where date_item > = next_day(trunc(sysdate)-7,1) and date_item next_day(trunc(sysdate)-7,1)表示本周的周日,即一周的第一天 next_day(trunc(sysdate),1) 表示下周的周日,由於Trunc,所以是直到本周最後一天的23:59:59转载 2015-06-09 09:28:07 · 985 阅读 · 0 评论 -
left join on 和where条件的放置
select * fromtd left join (select case_id as sup_case_id , count(*) supervise_number from td_kcdc_case_sup_info group by case_id ) sup on sup.sup_case_id = td.case_id wh转载 2015-06-10 09:05:04 · 430 阅读 · 0 评论 -
ORACLE WITH AS 用法
记得以前在论坛里看到inthirties用到过WITH AS这个字眼,当时没特别在意。今天在一个帖子里又看到有人用这个,所以就去网上搜了搜相关内容,自己小试了一把,写下来,方便以后忘了的话学习。===================================================================================先举个例子吧:有两张转载 2015-06-10 09:52:41 · 422 阅读 · 0 评论 -
oracle trunc(sysdate ,'dd') 日期
select trunc(sysdate ,'dd') from dual ; -- 2007-9-19select trunc(sysdate ,'yyyy') from dual ; --2007-1-1select trunc(sysdate ,'mm') from dual ; --2007-9-1begin dbms_转载 2015-05-26 14:17:55 · 751 阅读 · 0 评论 -
Merge into的使用详解-你Merge了没有
Merge是一个非常有用的功能,类似于Mysql里的insert into on duplicate key. Oracle在9i引入了merge命令, 通过这个merge你能够在一个SQL语句中对一个表同时执行inserts和updates操作. 当然是update还是insert是依据于你的指定的条件判断的,Merge into可以实现用B表来更新A表数据,如果A表中没有,则把B表转载 2015-05-26 14:18:26 · 356 阅读 · 0 评论 -
oracle中的sql%rowcount
sql%rowcount用于记录修改的条数,就如你在sqlplus下执行delete from之后提示已删除xx行一样, 这个参数必须要在一个修改语句和commit之间放置,否则你就得不到正确的修改行数。例如:SQL> declare n number; 2 begin 3 insert into test_a select level lv from dual c转载 2015-05-26 14:35:45 · 458 阅读 · 0 评论 -
=> 符号
=> 符号 内部称作 name notation (命名符号)除非指定全部参数,可以不用=>验证过,用"=>"也需要将所有没有default值的参数赋值,但是顺序可以任意,不需要按照存储过程的参数顺序,只要字段对应就好。我可以这样变更参数的顺序使用:BEGIN RAISE_APPLICATION_ERROR (转载 2015-05-26 14:44:02 · 322 阅读 · 0 评论 -
Oracle取上周一到周末日期的查询语句
[sql]-- Oracle 取上周一到周末的sql -- 这样取的是 在一周内第几天,是以周日为开始的 selectto_char(to_date('20130906','yyyymmdd'),'d')from dual; --结果:6 注释:2013.09.06是周五,为本周的第六天转载 2015-07-03 15:14:25 · 3578 阅读 · 0 评论 -
oracle中怎样获取当前月上个月的第一天和最后一天?
select trunc(add_months(sysdate,-1),'mm') first_day,last_day(add_months(sysdate,-1)) last_day from dual;转载 2015-07-13 16:57:42 · 25475 阅读 · 1 评论 -
oracle sql 按某个字段分组然后从每组取出最大的一条纪录
--找到每个伙伴商户最多的地区,作为伙伴的地区其实就是找出每组数据中,其中一列的值最大的,显示出来。select s.agent_name,cc.city_name as province,CC1.CITY_NAME as city from (select aa.agent_name,ci.province,ci.city,ROW_NUMBER() OVER (parti原创 2015-07-20 15:48:23 · 1654 阅读 · 0 评论 -
left join加上where条件的困惑 --SQL优化
left join加上where条件的困惑 摘自:http://hi.baidu.com/dyzhong/blog/item/b42e56a93c0bfcf71e17a2c0.html left join的困惑:一旦加上where条件,则显示的结果等于inner join 将where 换成 and 用where 是先连接然后再筛选 用and 是先筛选再连转载 2015-12-30 10:32:10 · 525 阅读 · 0 评论 -
每月的第一天和最后一天oracle
select to_char(trunc(add_months(sysdate,-1),'mm'),'yyyymmdd') first_day,to_char(last_day(add_months(sysdate,-1)),'yyyymmdd') last_day from dual;转载 2015-12-01 10:33:41 · 3409 阅读 · 0 评论 -
ORACLE-SQL编写规范(详细解释)
原文地址:http://blog.csdn.net/ethan_fu/article/details/8655685数据库SQL优化原则1. SQL语句的执行过程2. 选用适合的ORACLE优化器ORACLE的优化器共有3种:a. RULE (基于规则)b. COST (基于成本)c. CHOOSE (选择性)可以转载 2017-10-24 13:45:37 · 4632 阅读 · 0 评论 -
Oracle SQL编写注意事项
原文地址:http://blog.sina.com.cn/s/blog_7930c09d0100rak9.html1.SQL语句用大写的;因为Oracle总是先解析SQL语句,把小写的字母转换成大写的再执行。2.数据表最好起别名;因为便于sql优化器快速分析。3.尽量不要使用 insert into table value(?,?,?,?,?)格式,要指出具体要转载 2017-10-24 17:07:51 · 335 阅读 · 0 评论 -
查看当前oracle中正在执行的sql语句
原文地址:http://blog.csdn.net/qq_33301113/article/details/54766751问题现象最近一直在做,通过java后台,如何知道Oracle正在执行sql。因为不能与客户进行有效的沟通,也没有到现场了解,数据是如何进行的导入,所以这方面一直没有得到有效的突破;原因分析在查找资料的时候,发现了一条Sql语句。通过这条语句转载 2017-10-25 03:33:49 · 6198 阅读 · 0 评论 -
oracle中如何获得日期中的年份?
在Oracle中,要获得日期中的年份,例如把sysdate中的年份取出来,并不是一件难事。常用的方法是:Select to_number(to_char(sysdate,'yyyy')) from dual,而实际上,oracle本身有更好的方法,那就是使用Extract函数,使用方法是:Select Extract(year from sysdate) from dual,这种方法省掉了转载 2015-06-08 16:57:47 · 3062 阅读 · 1 评论 -
NEST LOOP改为HASH JOIN 性能提高6倍
NEST LOOP改为HASH JOIN 性能提高6倍Kevin Zou2011-8-31在看系统的AWR report时,发现有个SQL语句出现频率很高,而且都是在消耗资源的top 5内。决定把这个SQL拉出来看看。 523,370 1 523,370.0 2.7 253.31 2576.45 bc转载 2015-05-19 09:52:00 · 1230 阅读 · 0 评论 -
三种连接方式的特点
本帖最后由 Extremeways 于 2013-3-27 23:06 编辑nested loop:1.一个大表和一个小表(驱动表)连接,连接方式可以是等值或者是不等值2.驱动表数据较小或者内部表已连接的列有唯一性索引或者高度可选的非唯一性索引,效率很高3.能快速读取结果集中第一批记录而不必等待整个结果集完全确定下来hash join:1.一般两张相同大小的表连接,转载 2015-05-19 08:27:08 · 2343 阅读 · 0 评论 -
关于oracle with as用法
with as语法–针对一个别名with tmp as (select * from tb_name)–针对多个别名with tmp as (select * from tb_name), tmp2 as (select * from tb_name2), tmp3 as (select * from tb_name3), …转载 2015-05-27 14:27:01 · 344 阅读 · 0 评论 -
SQL中 decode()函数简介
今天看别人的SQL时看这里面还有decode()函数,以前从来没接触到,上网查了一下,还挺好用的一个函数,写下来希望对朋友们有帮助哈! decode()函数简介:主要作用:将查询结果翻译成其他值(即以其他形式表现出来,以下举例说明);使用方法:Select decode(columnname,值1,翻译值1,值2,翻译值2,.转载 2015-05-28 13:39:08 · 398 阅读 · 0 评论 -
Oracle 取两个表中数据的交集并集差异集合
Oracle 取两个表中数据的交集关键字: Oracle 取两个表中数据的交集 INTERSECTOracle 作为一个大型的关系数据库,日常应用中往往需要提取两个表的交集数据例如现有如下表,要求找出工资2500(不含2500)以上并且是男性(M)的员工编号,那么就要利用这两个表的关系做一个交集了 employeeCODENAME转载 2015-06-16 14:36:08 · 1735 阅读 · 0 评论 -
【sql调优之执行计划】nested loops join and nested loop join outer
Nested loops(嵌套循环)看一个例子:SQL> select b.* from scott.emp a,scott.dept b 2 where a.deptno = b.deptno 3 and a.empno = 7369 4 ; DEPTNO DNAME LOC---------- -------------- --转载 2015-05-29 09:49:31 · 1807 阅读 · 0 评论 -
oracle中sign函数
sign函数语法:sign(n)sign函数说明:取数字n的符号,大于0返回1,小于0返回-1,等于0返回0示例:select sign( 100 ),sign(- 100 ),sign( 0 ) from dual;SIGN(100) SIGN(-100) SIGN(0)———- ———- ———-1 -1 0 比较转载 2015-06-18 10:53:15 · 709 阅读 · 0 评论 -
trunc(sysdate,'HH')+1/24+1/24/10 这个是什么意思 1/24/10
摘抄了两个人的写法:trunc(sysdate,'HH') 是取当前系统时间,舍去分秒。+1/24 就是加上一小时。以此类推sysdate+1 加一天sysdate+1/24 加1小时sysdate+1/(24*60) 加1分钟sysdate+1/(24*60*60) 加1秒钟 sysdate+1就是加一天如果要加一小时的话就是sys转载 2015-06-18 11:07:05 · 17333 阅读 · 0 评论 -
oracle表连接方式
oracle表连接方式 oracle表的连接方式主要有以下几种:l Hash Join(HJ)哈希连接l Merge Join(Sort Merge Join)排序合并连接l Nest Loop(cluster join)嵌套循环 1. Hash Join(HJ)oracle 7.3以后引入转载 2015-05-18 09:31:48 · 397 阅读 · 0 评论 -
SQL 数据排重,去掉重复数据
最大的错误: 在对数据排重的时候,首先想到的就是Distinct,虽然这很管用,但多数场合下不适用,因为通常排重后还要做进一步处理,比如对编号排重后要按日期统计等。 无法排重的Group by ... having ... 虽然可以用Group by userid having count(*) =1 或者>1 ,但只能找出重复或者不重复的记录,好像达不到dist转载 2015-05-18 09:12:13 · 20982 阅读 · 0 评论 -
ORACLE表连接方式分析及常见用法
一 引言数据仓库技术是目前已知的比较成熟和被广泛采用的解决方案,用于整和电信运营企业内部所有分散的原始业务数据,并通过便捷有效的数据访问手段,可以支持企业内部不同部门,不同需求,不同层次的用户随时获得自己所需的信息。数据仓库系统需要能够及时地追踪和分析大量的历史数据,并能够及时做出分析和预测,因此实时性是一个非常重要的指标。ORACLE由于可靠性、高性能等方面的特点,在电信行业大部分的数据转载 2015-05-18 09:34:57 · 441 阅读 · 0 评论 -
oracle查找重复记录
SELECT *FROM t_info aWHERE ((SELECT COUNT(*) FROM t_info WHERE Title = a.Title) > 1)ORDER BY Title DESC一。查找重复记录1。查找全部重复记录Select * From 表 Where 重复字段 In (Select 重转载 2015-06-01 14:06:33 · 286 阅读 · 0 评论 -
sqlserver中的top n放到oracle中怎么写
取一条:select * from news_main where news_id and rownum = 1 order by news_id desc;取两条:select * from news_main where news_id and rown order by news_id desc;转载 2015-05-22 15:59:32 · 396 阅读 · 0 评论 -
Oracle学习笔记--grouping/grouping_id
Grouping函数:可以接受一列,返回0或1。如果列值为空,则返回1,非空则返回0。它只能在rollup和或cube函数中使用,因为在统计中显示“全部”的那一项统计值时,那一项的标签通常是空的,这时grouping就非常有用,还可以在grouping的基础上进行decode, case等进行美化。SQL> select grouping(index_type) g_ind,转载 2015-06-03 09:33:01 · 299 阅读 · 0 评论 -
hash join的基本机制
http://www.360doc.com/content/11/0625/17/2660674_129507672.shtml转载 2015-05-29 10:01:11 · 1898 阅读 · 0 评论 -
Oracle分组ROLLUP、GROUP BY、GROUPING、GROUPING SETS区别和作用
1.ROLLUP ROLLUP的作用相当于SQL> set autotrace onSQL> select department_id,job_id,count(*) 2 from employees 3 group by department_id,job_id 4 union 5 select department_id,null,c转载 2015-06-03 13:08:33 · 429 阅读 · 0 评论 -
基于COST的Oracle机制(有趣案例)
Oracle是根据COST来选择合适的执行计划的,为了深入了解其机制,我做了一个测试过程如下。-- Create tablecreate table TEST( EN_NAME VARCHAR2(6), BS_CODE VARCHAR2(10), DDATE DATE, IID NUMBER);-- Create/Recreate i转载 2015-05-19 10:53:34 · 439 阅读 · 0 评论 -
分页与性能不可兼得?由Order by引发的SQL优化反思
原文地址:https://www.sohu.com/a/151272020_487514作者介绍黄浩:从业十年,始终专注于SQL。十年一剑,十年磨砺。3年通信行业,写就近3万条SQL;5年制造行业,遨游在ETL的浪潮;2年性能优化,厚积薄发自成一家。中国的古典哲学起源于道:一阴一阳即为道,而传统的太极拳就是从阴阳互动中演变而来。汲取了道之精华的太极拳讲究的是刚柔相济、强弱相成,其中四两...转载 2018-07-25 20:54:33 · 612 阅读 · 0 评论