当创建带有自定义分页的记录“网格”时,使用C#查询记录总数以及记录起始端的最佳方法是什么?
返回分页记录集的SQL:
SELECT Some, Columns, Here FROM (
SELECT ROW_NUMBER() OVER (ORDER BY Column ASC) AS RowId, *
FROM
Records
WHERE
(...)
) AS tbl
WHERE ((RowId > @Offset) AND (RowId <= (@Offset + @PageSize)) )
若要计数记录总数,请使用SQL:
@Query("select p.id,m.id,c.tipoDocumento,c.codigoFact from Corresponsable c"
" inner join Pais p"
" on p.id = c.pais.id"
" inner join Moneda m"
" on m.id = c.moneda.id"
" order by p.nombre,m.nombre,c.tipoDocu
所以我有表comment和author。我想建立复杂的搜索栏与许多可选的参数。我想过滤评论与可选的作者名字/姓氏和一些标志,如受欢迎(基于评论评级)。
由于我不知道如何使用spring data jpa存储库编写它,我一直在考虑用@Query注解将它写成原生查询,像这样的smth应该可以工作。
Select c.* from comment c join author a on a.id = c.author_id
Where (:firstname = '' or (:firstname = a.firstname))
And (:lastname = ''
在sql子句中应用限制之前,我试图找出计算记录总数(对于分页选择器)的最佳方法,这让我自己陷入了一片混乱。
我已经使用了2个查询来实现这一点,为我想要的特定视图改变WHERE子句。
$sqlcount = "SELECT COUNT(invnum) AS num
FROM tblinvoices
WHERE invcustid>0 AND invstat>0 AND invdate
BETWEEN '$startdate' AND '$enddate'
$sqlquery = "SELECT $fieldlist
FROM t
假设您有一个以下JPA查询:
select car.year, car.month, count(car) from Car car group by car.year, car.month
在查询结果之前,我们需要知道这个查询将返回多少条记录(对于分页、UI等)。换句话说,我们需要这样的东西:
select count(*) from
(select car.year, car.month, count(car)
from Car car group by car.year)
但是JPA/EclipseLink不支持"from“子句中的子查询。有没有办法绕过它?
我将JPA (通过Spring数据)与母版DB结合使用。我有一个很大的实体,对我的系统非常重要。该实体具有多个关联(OneToMany、ElementCollection等)。
我的典型用法是从我的API中重新列出这些实体的分页列表。API模型需要来自相关字段的信息,因此我必须以某种方式为当前页面的每个条目获取它们。
根据DB查询,我使用两种方法获取原始列表:
来自我的spring存储库的典型JPQL查询(语言是kotlin):
@Query("select c from Company c where c.state = :state and :country mem
我有一个SQL查询返回类似于以下示例的XML数据:
SELECT XMLELEMENT("Columns",
XMLAGG(XMLELEMENT("Column", CNAME) ORDER BY CNAME)) AS DATA
FROM Col
现在,我想向该查询添加分页支持。由于XMLAGG函数将所有元素合并到一个XML结果中,标准的"WHERE < 100“方法将无法工作。
如何将分页添加到包含XMLAGG的Oracle SQL查询中?
我正在尝试为Peewee for SQL Server构建一个数据库驱动程序(通过SQL Relay)。因为SQL Server不像其他数据库那样支持LIMIT语法,所以我需要覆盖它。我相信SQL Server的正确语法是这样的:
SELECT TOP(1) FROM users
对于只需要返回所找到结果的子集的查询,TOP将替换LIMIT。
另一方面,在SQL Server中,对结果分页的支持是通过如下方式实现的:
SELECT email FROM emailTable
WHERE id=3
ORDER BY Id
OFFSET 10 ROWS
FETCH NEXT 10 ROWS O
使用LINQ获得分页结果的最佳模式是什么?
我有以下情况:
假设我想按描述搜索items表。我很容易做到:
public IQueryable<Item> FindItemsByDescription(string description)
{
return from item in _dc.Items
where item.Description.Contains(description);
}
现在,对此结果集进行分页的最佳方法是什么?
是否应该在执行此操作之前执行计数查询,以找出结果集大小,然后根据需要限制该查询?应该执行完整的查询,从数组大小获取计
我有以下SQL查询:
SELECT * FROM (
SELECT S.aCol, S.bCol, S.cCol, ROW_NUMBER() OVER (ORDER BY S.cCol ASC) AS R
FROM myTable S WHERE S.cCol LIKE 'abc%') AS TEMP
WHERE R BETWEEN 0 AND 10 FOR FETCH ONLY
基本上,这个查询服务于分页。对于每个fetch,between子句将具有不同的值。
现在,我想使用JPA实现相同的查询。
我从一个问题中找到了下面的参考文章:
但在本文中,结果列表直接传
我使用的是Spring data jpa 1.2,但是我找不到任何方法来检索如下所示的聚合查询结果。
select count(v), date(v.createTimestamp) from UserEntity v
group by date(v.createTimestamp)
,它们与本机JPA完美地协同工作。
@Entity()
public class UserEntity {
@Id
private long id;
.
.
@Column(columnDefinition = "TIMESTAMP DEFAULT CURRENT_
我是JPA存储库实现的新手,所以寻求帮助。用于获取列值中包含条件的表项的普通sql查询为:
select * from table t where t.column in('firstvalue','secondvalue','thirdvalue')
有没有与此对应的JPA/CRUD存储库?
对于多对一的关系。
子查询将是:
select * from child_foo where foo_id in(select foo_id from foo where foo_other_value="somevalue")
为此,h
在同一语句中检查具有不同条件的多个不同count()的最优雅/有效的方法是什么?考虑到SQL的语法,在查询中似乎只能有一个count()语句和每组WHERE/HAVING条件词。因此,为了利用不同的WHERE/HAVING条件集,这个第二个计数(*)似乎需要在一个不同的select语句中。这是将其放入到相同的结果集UNION的最佳方法吗?有其他选择吗?
理想情况下,我可以做这样的事情:
SELECT count(*) as First, count(*) as Second
FROM table
WHERE --conditionals for First
AND
--cond
我对SQL相当熟悉,但对Java Persistence API非常陌生。我正在通过Play Framework使用JPA。
我有以下MySql查询,如果可以的话,我想将其转换为纯JPA代码:
SELECT a.id, b.id
FROM Rankable a
INNER JOIN Rankable b on a.id < b.id
WHERE
a.category_id = ? AND b.category_id = ?
AND NOT EXISTS (
SELECT *
FROM Comparison c
WHERE c.lower in (a.id