----start

在开始本文之前,我们先看条SQL语句,如下:

SELECT <field_name> FROM <...> WHERE <field_name> IN ( SELECT DISTINCT <field_name> FROM <...> );

怎么样?看上去是不是很熟悉,可能你曾经写过 或者 看到别人写过这样的语句,或者压根就没注意。上述语句想表达的意思是:去掉结果集中的重复值,然而却画蛇添足了。写出这样语句的人没有很好的领会IN的意图。其实IN只关心集合中有没有值,而不关心有几个。所以此时的DISTINCT 完全没有必要。那么加上DISTINCT 会不会对性能产生影响呢?答案是不会。因为DB2 的优化器早知道有人会这么写,所以在查询之前已经帮你去掉了DISTINCT 。尽管如此,我们还是不要加DISTINCT 为好。

---感谢:特别感谢 jackyren007 发现了本文一个非常严重的错误。此错误在2009-11-19已经修正。

---更多参见:DB2 SQL 精萃

----声明:转载请注明出处。

----last updated on 2009.11.19

----written by ShangBo on 2009.9.28

----end

IN 与 DISTINCT相关推荐

  1. leetcode Longest Substring with At Most Two Distinct Characters 滑动窗口法

    题目解析 代码如下 题目解析 这一题是一道会员的题目,题目介绍如下: Given a string, find the length of the longest substring T that c ...

  2. RxJava 过滤操作符 distinct 和 distinctUntilChanged

    distinct  看下文档 distinct  : 过滤掉重复的元素 distinctUntilChanged: 过滤掉连续重复的元素,不连续重复的是不过滤 看下代码 1 distinct Obse ...

  3. Mybatis学习记录-使用问题总结之一DISTINCT

    问题1:手动修改的查询语句,放入到项目中后显示结果和实际查询结果不一致 由于实际情况中用的了分页功能,导致最终的语句在查询完成后,添加了分页项,即如下代码. ROW_NUMBER() OVER ( O ...

  4. [LeetCode] Longest Substring with At Most K Distinct Characters 最多有K个不同字符的最长子串...

    Given a string, find the length of the longest substring T that contains at most k distinct characte ...

  5. distinct吃亏记

    distinct 是一个去掉重复数据的函数 1.此函数只能在 头部 2.此函数声明后.如果跟两个或两个以上的字段.则会导致.此函数去判断与两个字段都相同的. 例如ID为2 的字段有两个.但是这两个字的 ...

  6. SQL中distinct的用法

    在表中,可能会包含重复值.这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值.关键词 distinct用于返回唯一不同的值.表A:示例1select distinct name f ...

  7. 自定义Linq的Distinct

    代码  1 using System;  2 using System.Collections.Generic;  3 using System.ComponentModel;  4 using Sy ...

  8. MySQL数据库中as和distinct关键字

    1. as关键字 使用SQL语句显示结果的时候,使用 as 给字段起一个别名,使在屏幕显示的字段名具备良好的可读性. 1.1 使用 as 给字段起别名 select id as 序号, name as ...

  9. pandas使用groupby函数和agg函数获取每个分组特定变量独特值的个数(number of distinct values in each group in dataframe)

    pandas使用groupby函数和agg函数获取每个分组特定变量独特值的个数(number of distinct values in each group in dataframe) 目录

  10. R语言dplyr包对独特值(distinct)进行计数实战

    R语言dplyr包对独特值(distinct)进行计数实战 目录 R语言dplyr包对独特值(distinct)进行计数实战

最新文章

  1. 支付宝当面付扫码支付支付后不回调_支付宝当面付门店码
  2. 手机HTML编辑浏览器,HTML编辑浏览器
  3. Linux系统管理技术手册——第6章 添加新用户
  4. urllib.request.urlopen(req).read().decode解析http报文报“‘utf-8‘ codec can‘t decode”错处理
  5. 怎么在电脑上看磁盘分配单元的大小_电脑磁盘到底该不该分区?怎么分区?
  6. java利用htmlparser得到网页html内容
  7. 日本研发圆滚滚的球形无人机,被LED屏团团包围
  8. HD Tune Pro: WDC WD1600AAJS-00B8D 160g inMyRitMachi
  9. 用打印服务器打印打印机显示脱机,菜鸟也专业 打印机脱机故障处理方法
  10. 奇迹1.03H服务端开服架设文件Data文件详解
  11. C语言 同构数的算法
  12. java中调用cmd命令被阻塞无法返回和继续执行
  13. 最简单易懂的ios p12证书 和描述文件的创建,IPA上传,最完整的ios上架苹果商店教程
  14. 如何区分电压串联负反馈电路和电流串联负反馈电路
  15. bboss kafka组件使用介绍
  16. c语言定义用户标识符32个,c语言用户标识符是什么
  17. mysql只比较月日的情况
  18. Google Colaboratory中有多个py文件时的使用技巧
  19. 大数据:2019年汽车4S店访客画像
  20. 音视频 — 图像基础

热门文章

  1. python培训班-Python培训机构_高品质Python线下开发培训班推荐-黑马程序员
  2. 本地win10安装的MySQL8.0.12用navicat12报错 2509 -Authentication plugin ' caching_sha2_password' cannot be :
  3. 如何搭建一个集群项目
  4. 当电脑出现的验证码老是提示输入错误怎么办?
  5. VS2017 -error LNK1104: 无法打开文件“msvcprtd.lib”
  6. 非线性规划----经济调度(Python实现)
  7. linux下 获取系统时间的相关函数
  8. 数据结构考试的一些选择题
  9. 【5】依赖注入DI(Dependency Injection)
  10. CAD控件 出三维控件!和手机CAD控件了,欢迎大家使用!