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
如果您在 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;
我正在使用 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
如果您在 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;