Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何在不使用函数(min、max等)的情况下从表中选择不同的行?_Sql_Oracle_Oracle11g - Fatal编程技术网

Sql 如何在不使用函数(min、max等)的情况下从表中选择不同的行?

Sql 如何在不使用函数(min、max等)的情况下从表中选择不同的行?,sql,oracle,oracle11g,Sql,Oracle,Oracle11g,最近我看到了很多关于这方面的问题,但我认为应该有比按一列分组并将所选表的所有其他字段设置为Min、Max、Average函数更简单的方法。例如,我有一个有20列的大表。我不认为将19列作为函数是正确的选择 我尝试了Distinct,但它也提供了重复的值。 此外,将select的每个字段都放在组中也不起作用,因为Oracle抱怨: ORA-00932: inconsistent datatypes: expected - got CLOB 有什么想法吗?您可以使用行数功能选择不同的行: sele

最近我看到了很多关于这方面的问题,但我认为应该有比按一列分组并将所选表的所有其他字段设置为Min、Max、Average函数更简单的方法。例如,我有一个有20列的大表。我不认为将19列作为函数是正确的选择

我尝试了Distinct,但它也提供了重复的值。 此外,将select的每个字段都放在组中也不起作用,因为Oracle抱怨:

ORA-00932: inconsistent datatypes: expected - got CLOB

有什么想法吗?

您可以使用行数功能选择不同的行:

select t.*
from (select t.*,
             row_number() over (partition by <columns that should be different>
                                order by NULL) as seqnum
      from t
     ) t
where seqnum = 1;

哪些值以不同的方式显示重复项?只有特定的数据类型?GROUP_BY有一个特殊的含义,不打算以这种方式使用。你能提供更多关于你的目标的信息吗?标准过程是在子查询中使用分组结果集,这样就不必为了语法一致性而聚合所有其他列。我要选择所有具有一个不同值的不同行,例如CustomerNum,有些行具有相同的CustomerNum。列值为Int、Varchar、Date等。CustomerNum列具有数字类型非常感谢先生:但是我认为它们应该包含一些命令或类似的内容来执行此任务,因为这在日常工作中是非常必要的。