oracle distinct的用法,oracle中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
结果:
ORA-00979: not a GROUP BY expression
00979. 00000 - "not a GROUP BY expression"
依然报错,
group by 必须放在 order by 和 limit之前,不然会报错
------------------------------------------------------------------------------------------------------------
偶认为这样可行
select max(id), name from table group by name;
结果:
id name
1 a
2 b
4 c
5 d
用法二:
一、数据:
1 zjx 001 AAAiBZAAQAAAAVPAAA
2 zjx 002 AAAiBZAAQAAAAVPAAB
3 zjx 001 AAAiBZAAQAAAAVPAAC
二、多字段
select distinct t.name,t.code from test1 t
select distinct t.* from test1 t
结果:
1 zjx 001
2 zjx 002
三、单字段
select distinct t.name from test1 t
结果:
1 zjx
oracle distinct的用法,oracle中distinct的用法详解相关推荐
- php中的where用法,ThinkPHP中where()使用方法详解
本文介绍thinkphp的where()方法的用法.where方法可以用于对数据库操作的结果进行筛选.即sql查询语句中的where子句. 今天来给大家讲下查询最常用但也是最复杂的where方法,wh ...
- session在PHP中的用法,PHP中session使用方法详解
php中session详解 综述 Session指的就是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间.从上述的定义中我们可以看到,Session实际 ...
- python3super用法_Python3中的super()函数详解
关于Python3中的super()函数 我们都知道,在Python3中子类在继承父类的时候,当子类中的方法与父类中的方法重名时,子类中的方法会覆盖父类中的方法, 那么,如果我们想实现同时调用父类和子 ...
- java 建造者实际中的用法_java中j建造者模式详解和使用方法
建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 一个 Builder 类会一步一步构造最 ...
- 在oracle中使用存储过程,如何在ORACLE中使用JAVA存储过程(详解)
如何在Oracle中使用Java存储过程 (详解) 一.如何缔造java存储过程? 通常有三种步骤来缔造java存储过程. 1.使用oracle的sql语句来缔造: e.g.使用create or r ...
- 《oracle大型数据库系统在AIX/unix上的实战详解》讨论31: oracle、sybase 数据库的不同访问...
<Oracle大型数据库系统在AIX/UNIX上的实战详解> 讨论31: oracle.sybase 数据库的不同访问方式 文平. 用户来信要求更细节比较一下Oracle和sybas ...
- Oracle大型数据库系统在AIX/UNIX上的实战详解
前言 风,紧, 夜,深沉, 剑,已出鞘, 影,飘然前行! 本书的立意和内容 在服务器领域,IBM p系列服务器与AIX操作系统毫无疑问是UNIX服务器领域中的佼佼者,它代表着UNIX深刻的技术内涵和广 ...
- Fedora 中的 Yum 命令详解
http://pengjiayou.com/blog/yum-fedora-in-order-detailed-explanation 总所周知,Redhat和Fedora的软 件安装命令是rpm,但 ...
- python xgboost参数_xgboost中XGBClassifier()参数详解
常规参数 booster gbtree 树模型做为基分类器(默认) gbliner 线性模型做为基分类器 silent silent=0时,不输出中间过程(默认) silent=1时,输出中间过程 n ...
- Java 中的伪共享详解及解决方案
转载自 Java 中的伪共享详解及解决方案 1. 什么是伪共享 CPU 缓存系统中是以缓存行(cache line)为单位存储的.目前主流的 CPU Cache 的 Cache Line 大小都是 ...
最新文章
- Spring 体系常用项目一览
- python在什么系统写代码合适-python用什么软件写代码
- 离散数学及其应用第6版中文版勘误
- unilever workspace creating space
- Docker-compose配置Mysql,Redis,MongoDB
- “约见”面试官系列之常见面试题之第九十二篇之created和mounted区别(建议收藏)
- 同步方法中的锁对象_互斥锁与读写锁:如何使用锁完成Go程同步?
- linux中split分割文件打开方式,Linux使用split对文件进行切分和合并的方法
- 【算法】剑指 Offer 59 - I. 滑动窗口的最大值
- LeetCode 540. 有序数组中的单一元素(Single Element in a Sorted Array) 42
- java异常原则_有效处理Java异常三原则
- MyBatis 基础知识
- java file 其他电脑上_将MultipartFile转换为java.io.File而不复制到本地计算机
- LEACH协议网络性能分析
- 吴伯凡-认知方法论-如何犯一个“正确”的错误
- 放硬币问题的解空间结构
- java 实现三角函数边长计算完整代码
- SLF4J: Failed toString() invocation on an object of type [com.zhao.guang.xiao.top.po.BlogBean$Hibern
- 怎么简单快速一个钟头入侵网站
- PVT(Pyramid Vision Transformer: A Versatile Backbone for Dense Prediction without Convolutions)
热门文章
- 计算机的应用(3)——防火墙相关知识介绍
- springboot整合minio,实现文件上传与下载,且支持链接永久访问
- java的cloneable_Java的Cloneable接口和clone方法
- laravel android api,Laravel RESTful API与Android应用程序
- ETL--oracle --CDC技术
- 我的技术投资策略:如何决定学习哪一个新技术的?
- 装饰(Decorator)模式(包装模式)
- Armory3D游戏引擎运行armory_templates等工程报key Principled BSDF not found错误
- Springboot毕设项目婚礼服务预约管理系统5k923(java+VUE+Mybatis+Maven+Mysql)
- NOIP2016模拟赛 序 (LIS)