易截截图软件、单文件、免安装、纯绿色、仅160KB

oracle distinct

oracle distinct
关键字: distinct的一些杂谈
distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用 它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是distinct只有用二重循环查询来解决,而这样对于一个数据量非常大的站来说,无疑是会直接影响到效率的。
下面先来看看例子:
table表
字段1     字段2
   id        name
   1           a
   2           b
   3           c
   4           c
   5           b
库结构大概这样,这只是一个简单的例子,实际情况会复杂得多。
比如我想用一条语句查询得到name不重复的所有数据,那就必须使用distinct去掉多余的重复记录。
select distinct name from table
得到的结果是:
 
---------- 
name
   a
   b
   c
好像达到效果了,可是,我想要得到的是id值呢?改一下查询语句吧:
select distinct name, id from table
结果会是:
---------- 
id name
   1 a
   2 b
   3 c
   4 c
   5 b
distinct怎么没起作用?作用是起了的,不过他同时作用了两个字段,也就是必须得id与name都相同的才会被排除。。。。。。。
我们再改改查询语句:
select id, distinct name from table
很遗憾,除了错误信息你什么也得不到,distinct必须放在开头。难到不能把distinct放到where条件里?能,照样报错。
------------------------------------------------------------------------------------------------------------
下面方法可行:
select *, count(distinct name) from table group by name
结果:
   id name count(distinct name)
   1 a 1
   2 b 1
   3 c 1
最后一项是多余的,不用管就行了,目的达到。。。。。
group by 必须放在 order by 和 limit之前,不然会报错
================


相关文档:

Oracle wait problems and potential solutions

Wait Problem Potential Fix Sequential Read Indicates many index reads—tune the code (especially joins) Scattered Read Indicates many full table scans—tune the code; cache small tables ......

Oracle 客户端配置监听(TNSNames.ora设置)

① 只需在文件 TNSNames.ora 中加入以下节点,即可成功配置监听
ORCL190 =  //红色部门为连接监听名字
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.190)(PORT = 1521))  //红色部门为服务器所在IP地址 1521为端口号
    (CONNECT_DATA ......

ORACLE的JOB创建

ORACLE的JOB创建,可惜的是不能改名,只能是数字的名字。
DECLARE X NUMBER;
BEGIN
  SYS.DBMS_JOB.SUBMIT
  ( job       => X
   ,what      => 'compile_invalid_object;'
   ,next_date => to_date('20-04-2010 ......

oracle客户端 连接PL/SQL

oracle客户端  连接PL/SQL
下载客户端到某个路径
修改配置文件
D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora
# tnsnames.ora Network Configuration File: D:\oracle\product\10.2.0\db_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
SQLCLUB =
  (DESCRIPTION ......

Oracle中的Hash Join祥解

Oracle中的Hash Join祥解
一、  hash join概念
     Hashjoin(HJ)是一种用于equi-join(而anti-join就是使用NOT IN时的join)的技术。
在Oracle中,它是从7.3开始引入的,以代替sort-merge和nested-loop join方式,
提高效率。在CBO(hash join只有在CBO才可能被使用到)模式下,优化器计算代 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号