我正在运行一个简单的选择页面,它返回了很多重复的记录,我需要回到我的一行,我曾尝试使用一个组,但它给了我一个错误,我需要知道是否还有其他方法可以解决这个问题。
查询是:
select a.co_id,
a.customer_id,
sysadm.func_cap_co_id(co_id, 'RCAT', NULL) RC,
rowid
from mdsrrtab a
where a.co_id in ('123456');
结果是:
1. 123456 163972378 20
2. 123456 163972378 20
正如你所看到的那样,它向我提供了重复的信息。
当我使用它的组时,它给了我一个ORA-00979,我用谷歌搜索它但仍然无法得到解决方案。
修改
我能够通过删除rowid删除重复的行,thx到@L.Llama,让我看看rowid。
查询如下:
select a.co_id,
a.customer_id,
sysadm.func_cap_co_id(co_id, 'RCAT', NULL) RC
from mdsrrtab a
where a.co_id in ('123456')
group by a.co_id, a.customer_id;
结果
亲切的问候。
答案 0 :(得分:1)
您可以使用DISTINCT或GROUP BY
DISTINCT解决方案:
select distinct a.co_id,
a.customer_id,
sysadm.func_cap_co_id(co_id, 'RCAT', NULL) as RC
from mdsrrtab a
where a.co_id in ('123456');
GROUP BY解决方案:
select a.co_id,
a.customer_id,
sysadm.func_cap_co_id(co_id, 'RCAT', NULL) as RC
from mdsrrtab a
where a.co_id in ('123456')
group by a.co_id,a.customer_id,sysadm.func_cap_co_id(co_id,'RCAT',null);