我正在使用PL-SQL。我有一个名为objectlist的表。在此表中,我有序列号,名为changeno,每个都有生产日期。
我看到一些序列号的生产日期不同。我想列出具有不同生产日期的序列号。
假设序列1234在表格中有两个生产日期。所以,我的sql应该显示为
1234 12.01.2015
1234 01.12.2015
我不知道哪个系列产品有多个生产日期。请告诉我如何找到这个。
答案 0 :(得分:1)
其中一种可能性是使用分析函数count():
select changeno, pdate
from (
select changeno, pdate, count(1) over (partition by changeno) cnt
from objectlist )
where cnt > 1 order by changeno, pdate
如果你在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;