Select 行在一列中具有相同的值但在第二列中具有不同的值

Select rows with same value in one column but differing value in second column

我正在使用 PL-SQL。我确实有一个 table 命名的对象列表。在这个table中,我确实有序列号,命名为changeno,每个都有生产日期。

我看到有些序列号有不同的生产日期。我想列出生产日期不同的序列号

假设序列号 1234 在 table 中有两个生产日期。所以,我的 sql 应该显示为

1234   12.01.2015   
1234   01.12.2015

我不知道哪些连续剧的生产日期不止一个。请告诉我如何找到它。

其中一种可能性是在此处使用分析函数 count()

select changeno, pdate 
  from (
    select changeno, pdate, count(1) over (partition by changeno) cnt 
      from objectlist )
  where cnt > 1 order by changeno, pdate

SQLFiddle demo

如果您在 PLSQL 中需要这个而不是将这个查询放在过程、函数或块中:

begin 
  for c in (
    select changeno, pdate 
      from (
        select changeno, pdate, count(1) over (partition by changeno) cnt 
          from objectlist )
      where cnt > 1 order by changeno, pdate )
  loop
    dbms_output.put_line(lpad(c.changeno, 10)||' '||c.pdate);
  end loop;
end;