我有一个包含以下数据的Sybase表(示例):
Users:
ID Type PlayerID
-------- ----------- -------------------
65823 1 (null)
65823 2 187
91817 1 (null)
37950 1 773
37950 1 (null)
37968 1 (null)
37968 1 773
72576 1 (null)
72576 1 (null)
我想返回用户和类型的所有组合,但如果有特定用户/类型组合的多个示例,则仅显示不为空的记录
E.g。上表应返回以下内容
ID Type PlayerID
-------- ----------- -------------------
65823 1 (null) - although this is null the type/id is unique
65823 2 187
91817 1 (null) - this is null but is a unique type/id
37950 1 773
37968 1 773 - this is included and the id/type that has a null player id isn't
72576 1 (null) - this is a unique type/id
到目前为止,我已经查看了使用group by,having和inner join的查询,但是找不到匹配我正在寻找的结果的方法。
我还查看了group by之类的内容,然后在PlayerID上使用了max,但是聚合函数忽略了空值。
如何使用其玩家ID返回唯一的ID /类型对?
-
保罗提问:
ID Type PlayerID
-------- ----------- -------------------
65823 2 187
37950 1 773
37968 1 773
答案 0 :(得分:1)
从SQL方面你可以这样做:
select * from mytable t1 where playerId is not null
union
select * from mytable t2 where playerid is null
and not exists (
select * from mytable t3 where t2.id=t2.id and t2.type=t3.type
)
我不知道它会有多么有效,但它会给你你想要的结果。
答案 1 :(得分:0)
什么是
select ID, type, max(PlayerID)
from Users
group by ID, type
返回? (我从未使用过sybase)