仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1304|回复: 8
打印 上一主题 下一主题

[学习教程] MSSQL网站制作之出色的表数据排序分组

[复制链接]
海妖 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:17:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
因此我们看到,这些信息足够让我们对单个操作实现“逆操作”。明天,当你必要对一个没有排序ID的表举行排序,而且想给每行数据都给一个序号。这相称于良多人问到的,怎样在一个视图中为每行增添一个主动增加的“ID”号。你能够如许写:
以下为援用的内容:
Selecta.Badge,Count(a.Badge)asxorder
FromcPayrolla,cPayrollb
Wherea.Badge>=b.BadgeGroupbya.Badge

看了今后的语句,你大概会以为十分复杂。在以上的基本上,还能够满意以下如许一个很有用的功效。一个表中的前20行分红第1组,从21行-->40行分红第2组,41-->60分红第3组。也便是在一个表的基本上拓展用视图天生以下的数据。(xOrder与Group都是视图天生的。)
以下为援用的内容:
BadgexOrderGroup
A11G1
A22G1
.
B121G2
B222G2
...
C141G3
...

在下面的视图得出来今后,我们就能够用Select*fromViewNameWhereGroup=G1(G2....)的语句举行分组或分页显现查询了。以下我们来天生如许的了局。
在排序功效完成了今后,再完成分组,就是稍微变更一下罢了:
以下为援用的内容:
SelectBadge,Count(a.Badge)asxorder,Cast(((Count(a.Badge)-1)/20)+1asvarchar(10))asGroup
FromcPayrolla,cPayrollb
Wherea.Badge>=b.BadgeGroupbya.Badge


支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统
不帅 该用户已被删除
沙发
发表于 2015-1-19 06:52:03 | 只看该作者
总感觉自己还是不会SQL
飘灵儿 该用户已被删除
板凳
发表于 2015-1-28 05:22:56 | 只看该作者
连做梦都在想页面结构是怎么样的,绝非虚言
简单生活 该用户已被删除
地板
发表于 2015-2-5 15:17:54 | 只看该作者
其实可以做一下类比,Oracle等数据库产品老早就支持了java编程,而且提供了java池参数作为用户配置接口。但是现在有哪些系统大批使用了java存储过程?!连Oracle自己的应用都不用为什么?!
admin 该用户已被删除
5#
发表于 2015-2-12 16:32:31 | 只看该作者
另一个是把SQL语句写到服务器端,就是所谓的SP(存储过程);
因胸联盟 该用户已被删除
6#
发表于 2015-3-3 04:32:41 | 只看该作者
而写到本地,我又考虑到效率问题.大家来讨论讨论吧,分数不打紧,就给10分,十全十美,没啥对错,各抒己见,但是要有说服力的哦~
深爱那片海 该用户已被删除
7#
发表于 2015-3-11 09:51:15 | 只看该作者
分区表效率问题肯定是大家关心的问题。在我的试验中,如果按照分区字段进行的查询(过滤)效率会高于未分区表的相同语句。但是如果按照非分区字段进行查询,效率会低于未分区表的相同语句。
金色的骷髅 该用户已被删除
8#
发表于 2015-3-18 04:31:27 | 只看该作者
这是一个不错的新特性。虽然索引的附加字段没有索引键值效率高,但是相对映射到数据表中效率还是提高了很多。我做过试验,在我的实验环境中会比映射到表中提高30%左右的效率。
飘飘悠悠 该用户已被删除
9#
发表于 2015-3-25 12:51:19 | 只看该作者
如果,某一版本可以提供强大的并发响应,但是没有Oracle的相应版本稳定,或者价格较贵,那么,它就是不适合的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-5 21:33

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表