惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

人人都是产品经理
人人都是产品经理
Apple Machine Learning Research
Apple Machine Learning Research
云风的 BLOG
云风的 BLOG
罗磊的独立博客
博客园 - 三生石上(FineUI控件)
量子位
GbyAI
GbyAI
腾讯CDC
T
Tailwind CSS Blog
博客园 - Franky
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
D
Docker
G
Google Developers Blog
aimingoo的专栏
aimingoo的专栏
The GitHub Blog
The GitHub Blog
Microsoft Security Blog
Microsoft Security Blog
Stack Overflow Blog
Stack Overflow Blog
Hugging Face - Blog
Hugging Face - Blog
小众软件
小众软件
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
N
Netflix TechBlog - Medium
Jina AI
Jina AI
IT之家
IT之家
Y
Y Combinator Blog

博客园 - 玄新

asp.net 2.0 中加密web.config 文件中的配置节 Windows DNA架构 如何使用 Visual C# .NET 检查 Windows 版本[转] 使用DirectoryServices给文件添加访问权限 - 玄新 - 博客园 使用WMI来获取CPU序列号 - 玄新 - 博客园 什么是WMI C#读取设备信息(源代码下载) 格式化日期型数据 用 javascript显示时间日期代码(来自网上) - 玄新 - 博客园 昨天发现System.Diagnostics.Process 一样的可以打开一个网页的,直接的输入网页的地址就好了 - 玄新 - 博客园 文本框输入限制大全 在b/s开发中经常用到的javaScript技术 文本框里只能输入数字和退格键 (datagridview)如果单击列表头,全选.(第一列为复选框) DataGridView新特色(vs2005) 实现窗体淡入淡出的完整代码 excel 导入导出access数据库(winform) 递归得到叶子节点。 验证手机号码,小灵通号码函数
如何在SQL中对行进行动态编号
玄新 · 2007-01-30 · via 博客园 - 玄新

如何在SQL中对行进行动态编号,加行号这个问题,在数据库查询中,是经典的问题.
    我把现在的方法整理一下,分享一下技巧吧
    代码基于pubs样板数据库
    在SQL中,一般就这两种方法.
    1.使用临时表
    可以使用select into 创建临时表,在第一列,加入Identify(int,1,1)作为行号,
    这样在产生的临时表中,结果集就有了行号.也是目前效率最高的方法.
    这种方法不能用于视图
    代码:

    2.使用自连接
    不用临时表,在SQL语句中,动态的进行排序.这种方法用到的连接是自连接,连接关系一般是
    大于,
    代码

    运行结果:
    rank au_lname au_fname 
    ----------- ---------------------------------------- -------------------- 
    1 Bennet Abraham
    2 Blotchet-Halls Reginald
    3 Carson Cheryl
    4 DeFrance Michel
    5 del Castillo Innes
    6 Dull Ann
    7 Greene Morningstar
    ... ....

    缺点:
    1.使用自联接,所以该方法不适用于处理大量行。它适用于处理几百行。
    对于大型表,一定要使用索引以避免进行大范围的搜索,或用第一种方法.
    2.不能正常处理重复值。当比较重复值时,会出现不连续的行编号。
    如果不希望出现这种现象,可以在电子表格中插入结果时隐藏排序列,而是使用电子表格编号。
    或用第一种方法
    优点:
    1.这些查询可以用于视图和结果格式设置中
在结果集中插入了行号,现在就可以将结果集合缓存起来,然后使用DataView,加入过滤条件

RowNum>PageIndex*PageSize And RowNum<=(PageIndex+1)*PageSize

就能实现快速的分页,而且不论你的页面数据绑定控件是什么(DataList,DataGrid,还是Repeate都可以)。

如果你使用的是DataGrid,那么建议不要使用这种技术。因为DataGrid的分页效率和它差不多。