Oracle10g 相同的SQL查询返回不同的结果

Oracle10g 相同的SQL查询返回不同的结果,oracle10g,Oracle10g,我有一个这样的疑问 表A数据 PK Fst_Name Mid_Name Last_Name Full_NAme --------------------------------------------------- 1 Peter Kisnan Peter,Kisnan 2 Jeff S Boycott Jeff,S,Boycott select 1,PK,fst_name,Last_Name,F

我有一个这样的疑问

表A数据

PK    Fst_Name  Mid_Name Last_Name   Full_NAme 
---------------------------------------------------
1     Peter              Kisnan      Peter,Kisnan
2     Jeff      S        Boycott     Jeff,S,Boycott

select 1,PK,fst_name,Last_Name,Full_Name from A where PK=2
union
select 2, PK,fst_name,Last_Name,Full_Name from A where last_name='Kisnan' and fst_name='Peter'
结果

1,2,Jeff,Boycott, Jeff,S,Boycott
2,1,Jeff,Boycott, Jeff,S,Boycott
有人能回答这是怎么可能的吗?我正在使用Oracle 10g

也质疑

select count(1) from A where last_name='Kisnan' and fst_name='Peter' shows 2. but
select count(1) from A where last_name like'%Kisnan' and fst_name like'%Peter' shows 1. 

对于给定的查询和数据,这是不可能的,但我假设您没有向我们显示您的实际查询和数据。试一试,PK不是唯一的,有两条记录的PK=2。一个给彼得,一个给杰夫。将您的
union
更改为
union all
。如果有一个额外的重复行,你有你的证明。很抱歉,我的工会查询结果是这样的,1,2,杰夫,抵制,杰夫,s,抵制2,2,杰夫,抵制,杰夫,s,抵制还有一个quey select*,从那里last_name='Kisnan'和fst_name='Peter'给我2,杰夫,s,抵制,杰夫,s,抵制和查询*,其中姓氏(如“%Kisnan”)和fst(如“%Peter”)给出1,Peter,Kisnan,Peter,Kisnan。