Oracle 查询一个字段相同,另一个字段不同
SELECT DISTINCT
a.字段1,
a.字段2
FROM
table a
JOIN table b ON a.字段2 != b.字段2
WHERE
a.字段1= b.字段1
ORDER BY
a.字段1,
a.字段2
以下两种查询效果相同(查出同一张表中不同案件,但是有同一录入人、同一录入单位,同一案发时间的数据):
第一种SQL:
SELECT DISTINCT
a.case_id,
a.case_no,
a.case_name
FROM
liangfa_case_basic a
JOIN liangfa_case_basic b ON a.case_id != b.case_id
WHERE
to_char(a.input_time,'yyyy-MM-dd')= to_char(b.input_time,'yyyy-MM-dd')
and a.input_org= b.input_org
and to_char(a.anfa_time,'yyyy-MM-dd')= to_char(b.anfa_time,'yyyy-MM-dd');
查询结果:

第二种SQL:
select * from ( select lcb.case_id,lcb.case_no,lcb.case_name,count(*) over(partition by to_char(lcb.input_time,'yyyy-MM-dd'),lcb.input_org,to_char(lcb.anfa_time,'yyyy-MM-dd')) as num from liangfa_case_basic lcb )t where t.num > 1
查询结果:


浙公网安备 33010602011771号