oracle 查询 使用where in 数组条件显示重复结果的问题

我的入参是一个变量数组,因为数组中可能存在相同的条件,但是我想把相同条件的结果在查询中显示出来。
例如:表test ,字段有name和pycode
--------------------------------------------------
name pycode
张三 zs
张三 zs
李四 ls
王五 ww
....... .....
----------------------------------------------------
select * from test where pycode in ('zs','zs','ww')
可以得到查询结果
--------------------------------------------------
name pycode
张三 zs
张三 zs
王五 ww
----------------------------------------------------

而不是
--------------------------------------------------
name pycode
张三 zs
王五 ww

----------------------------------------------------

肯定啊,条件是 pycode in ('zs','zs','ww') 写一个zs(in ('zs','ww'))和你现在得到的结果是一样的。
就是pycode=zs或者pycode=ww,只要满足一个那么就显示,这里明显是两条满足。你要的显示结果是去重(去掉重复)
这里可以用distinct函数,也可以用group by 分组
select distinct name,pycode from test;
select name,pycode from test group by name,pycode;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-04-12
select name,pycode from test where pycode in ('zs','zs','ww') group by name,pycode;
这样写试一下,看看是否好用。
第2个回答  2015-11-08
你的语句查询出来就是包括所有记录的,不知道你想问什么。本回答被提问者采纳
相似回答