0

我有一个表,其中 termid、termversion 是两个主键。表中存在的列 - termid、termversion、name

我想选择名称为 ilike'%AB%'的所有术语,结果应包含具有最大版本号的每个匹配术语。

例子:

id    name   ver
1     ABBBB  1
1  ABBBB  2
1  ABBBB 3
2  ABC   1
2  ABC   2

输出应该来

1 ABBBB 3
2 ABC   2

我想使用 Criteria 在休眠中编写此查询...如果有人可以在休眠中建议我,那么它真的很好,否则至少可以帮助我编写 sql 查询。PS我正在使用postgresql

4

3 回答 3

0

我认为这就是您要寻找的:

SELECT id, name, MAX(ver)
  FROM table
 WHERE name ILIKE '%AB%'
 GROUP BY name, id        -- I assume: id == id' <==> name == name'

是吗?

于 2012-05-22T08:51:15.880 回答
0

select id, name, max(ver) from mytable where name like '%AB%' group by id, name

于 2012-05-22T08:55:27.097 回答
0

你能试试这个sql命令吗?

select id,name,max(ver) from table_name group by id, name 像 '%AB%'

于 2012-05-22T09:00:06.087 回答