根据DB2中的2个唯一标准选择整行

时间:2014-03-11 14:50:03

标签: sql hibernate db2

我的SQL技术诀窍达到了极限,我希望能得到一些帮助。

我正在使用db2和Hibernate;我想根据两列中的唯一组合将行添加到域对象中。

我对DISTINCT和GROUP BY条款比较熟悉,但它们没有达到预期的效果。

非常无效的SQL:

SELECT DISTINCT * 
FROM table1 a, (SELECT DISTINCT field1, field2 FROM table1) b
WHERE a.field1 = b.field1
AND a.field2 = b.field2

基本上我需要一个: SELECT DISTINCT field1,field2 FROM table1(但我需要返回整行,而不仅仅是字段子集。

1 个答案:

答案 0 :(得分:1)

你需要找出要返回的行。以下使用row_number()并将返回DB2中的任意匹配行:

select t.*
from (select t.* , row_number() over (partition by field1, field2 order by rand()) as seqnum
      from table1 t
     ) t
where seqnum = 1;

我不确定这是如何转化为休眠的。