只返回第一条数据,用sql语句在数据库查的时候却有多条
returnthis.getSession().createQuery("FROM"+clazz.getSimpleName()+"whereoid=?").setPar...
return this.getSession().createQuery("FROM " +clazz.getSimpleName() +" where oid=?").setParameter(0, id).list();
展开
1个回答
2016-05-22
展开全部
使用分析函数row_number() over (partiion by ... order by ...)来进行分组编号,然后取分组标号值为1的记录即可。目前主流的数据库都有支持分析函数,很好用。
其中,partition by 是指定按哪些字段进行分组,这些字段值相同的记录将在一起编号;order by则是指定在同一组中进行编号时是按照怎样的顺序。
示例(SQL Server 2005或以上适用):
select s.*
from (
select *, row_number() over (partition by [手机号] order by [店铺]) as group_idx
from table_name
) s
where s.group_idx = 1
其中,partition by 是指定按哪些字段进行分组,这些字段值相同的记录将在一起编号;order by则是指定在同一组中进行编号时是按照怎样的顺序。
示例(SQL Server 2005或以上适用):
select s.*
from (
select *, row_number() over (partition by [手机号] order by [店铺]) as group_idx
from table_name
) s
where s.group_idx = 1
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询