【问题标题】:Using distinct for specific column in oracle在 oracle 中对特定列使用 distinct
【发布时间】:2016-01-03 10:47:39
【问题描述】:

在oracle中可以进行Followinq查询

select DISTINCT(COLA), COLB 
from TABLEA

在这个查询中,

  1. 此查询是否会返回 COLA 和 COLB 组合的不同值?
  2. 如果此查询仅返回 COLA 的不同值,那么所选 COLA 的 COLB 值应该是多少?
  3. 或者如果我们有多个具有相同 COLA 值的记录,这个查询会抛出错误吗?

【问题讨论】:

  • distinctNOT 一个函数。它始终应用于选择列表的所有列。写distinct (cola), colbdistinct cola, colb完全相同(括号完全没用)。详情在手册中:docs.oracle.com/database/121/SQLRF/…
  • 在这种情况下,如何单独实现特定行的不同?

标签: sql oracle distinct


【解决方案1】:

在您的示例中,查询返回 COLA 和 COLB 组合的不同值。

检查语法:

请注意,DISTINCT/UNIQUE/ALL 只能放在 SELECT 之后和选择列表中的第一个表达式之前。

文档说:
https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_10002.htm

不同 |独一无二的

如果您希望数据库只返回一个,请指定 DISTINCT 或 UNIQUE 选择的每组重复行的副本。这两个关键词是 同义词。重复的行是那些每个都有匹配值的行 选择列表中的表达式。

全部

如果您希望数据库返回所有选定的行,请指定 ALL, 包括所有副本。默认为全部。

上述意思是,DISTINCT/UNIQUE 始终应用于整个选择列表,而不是单个列

【讨论】:

    猜你喜欢
    • 2013-11-25
    • 2017-11-07
    • 2023-04-08
    • 2018-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多