如何得到:
id Name Value
1 A 4
1 B 8
2 C 9
Run Code Online (Sandbox Code Playgroud)
至
id Column
1 A:4, B:8
2 C:9
Run Code Online (Sandbox Code Playgroud) 我应该使用LINQ Skip()和Take()方法进行分页,还是使用SQL查询实现自己的分页?
哪个最有效?为什么我会选择一个而不是另一个?
我正在使用SQL Server 2008,ASP.NET MVC和LINQ.
我想对包含大量数据的表应用分页。我只想知道比在 SQL Server 中使用 OFFSET 更好的选择。
这是我的简单查询:
SELECT *
FROM TableName
ORDER BY Id DESC
OFFSET 30000000 ROWS
FETCH NEXT 20 ROWS ONLY
Run Code Online (Sandbox Code Playgroud) 我希望在表格中获得第n个到第m个记录,以下2个解决方案中的最佳选择:
解决方案1:
SELECT * FROM Table WHERE ID >= n AND ID <= m
Run Code Online (Sandbox Code Playgroud)
解决方案2:
SELECT * FROM
(SELECT *,
ROW_NUMBER() OVER (ORDER BY ID) AS row
FROM Table
)a
WHERE row >= n AND row <= m
Run Code Online (Sandbox Code Playgroud) 有没有办法获得复杂的Linq查询和数百万条记录的行数,而无需点击数据库两次或写入2个单独的查询?
我可能有自己的建议.写一个存储过程,但我很擅长MySQL而不是MSSQL.
任何更好的建议都会很棒.此外,如果有人知道Microsoft是否正在将此功能添加到实体框架中.
我想限制我在MySQL中获取的行数.你能告诉我怎么样吗?
例如:
等等
我需要在网页上获取和显示数据,其记录数量可能会因大约500条记录到100万条记录的过滤器而异.
缓存在这里会有用吗,因为我认为记忆中的百万记录不是一个好主意.SqldataReader?
当然,分页是必须实现的.显示100万条记录是最糟糕的情况(All filter使用案例中的愚蠢!).
我应该使用连接架构(SqlDataReader)还是断开连接的架构(DataSet)?
我应该怎么做才能在Laravel端点上对vue服务器表进行分页?
我的组件
<template>
<div>
<v-server-table :columns="columns" url="/object/find" :options="options">
</v-server-table>
</div>
</template>
<script>
export default {
data () {
return {
columns: ['name', 'type', 'created_by', 'created_at'],
options: {
perPage: 5,
perPageValues: [5, 10, 15, 25, 50, 100],
pagination: {chunk: 5},
dateColumns: ['created_at'],
dateFormat: 'DD-MM-YYYY HH:mm',
datepickerOptions: {
showDropdowns: true,
autoUpdateInput: true,
}
filterable: ['name', 'type','created_by', 'created_at'],
sortable: ['name', 'type', 'created_by', 'created_at'],
requestAdapter (data) {
return {
sort: data.orderBy ? data.orderBy : 'name',
direction: data.ascending ? 'asc' : 'desc',
limit: data.limit ? …Run Code Online (Sandbox Code Playgroud) 是否有可能获得总表count和rows相同的查询.这样的事情
SELECT COUNT(1),*
FROM tbl
GROUP BY ALL
Run Code Online (Sandbox Code Playgroud) 我有#temp 表,我需要对该表中的所有数据进行分页。表格分页的最佳方式是什么?
create table #temp (
Id int
,SomeName nvarchar(100)
)
create table #tempPage (
Id int
,SomeName nvarchar(100)
,PageIndex int
)
--Test data
insert #temp (Id, SomeName) values
(1,'A'),
(2,'B'),
(3,'C'),
(4,'D'),
(5,'F'),
(6,'G'),
(7,'H'),
(8,'A1'),
(9,'B1'),
(10,'C1'),
(11,'D1'),
(12,'F1'),
(13,'G1'),
(14,'H1');
--Page size
declare @PageSize int = 5
--Max page count
declare @MaxPages float = (
select
case when count(Id)%@PageSize>0 then count(Id)/@PageSize+1 else count(Id)/@PageSize end
from #temp
)
declare @PageFrom int = 0
declare @CurrentPage int = 1 …Run Code Online (Sandbox Code Playgroud) 这里的SQL-noobie想要将以下存储过程修改为从指定行开始选择指定行数的行.例如,我想从第10行开始选择5行,即10,11,12,13,14,15.
这是我的SP看起来像atm:
SELECT Posts.Slug, Comments.commentId, Comments.[date], Comments.name, Comments.[text]
FROM Comments
INNER JOIN Posts ON Comments.postId = Posts.Id
WHERE Comments.approved = 0
Run Code Online (Sandbox Code Playgroud)
我不需要按顺序阅读结果,以便重要.
谢谢!
sql ×8
sql-server ×7
pagination ×4
t-sql ×2
.net ×1
asp.net ×1
asp.net-mvc ×1
c# ×1
database ×1
javascript ×1
laravel ×1
linq-to-sql ×1
mysql ×1
performance ×1
vue-tables-2 ×1
vue.js ×1