sqlserver是比较好用的了
但是,还是有2个比较不好的地方:
1、存储过程的生成记录集,无法被调用者的sql拿来(截取或调用前就指定一个表变量去承接)使用
2、在sql语句里无法定义临时的函数、存储过程,然后使用它(必须实实在在的建立函数、存储过程,才能使用它们,最后还要删除它们)
sql2005增加了varchar(max),功德无量!
但是select top n SKIP m ... from ...始终没有实现SKIP m,实在不爽——虽然rank over(不过好像是sql2005才出现,效率好像也不低)
RANK ( )OVER ( [ < partition_by_clause > ] < order_by_clause > )
如果两个或多个行与一个排名关联,则每个关联行将得到相同的排名。例如,如果两位顶尖销售员具有同样的 SalesYTD 值,他们将并列第一。由于已有两行排名在前,所以具有下一个最大 SalesYTD 的销售人员将排名第三。因此,RANK 函数并不总返回连续整数。
用于整个查询的排序顺序决定了行在结果集中的显示顺序。这也隐含了行在每个分区中的排名。
还有2个想而没有功能的:
1、对于sql的结果,在不知道字段名的情况下按顺序取
2、对于sql的结果,在不知道某字段名是否存在的情况下,条件选择
(如:如果存在fid则取max(fid)否则取max(第一个字段名))
对于2,如果是固定的表或视图,好像可以通过系统表查到某字段名是否存在
但是如果是一个子查询,则不行
本文探讨了SQL Server的优点及存在的局限性,包括存储过程生成记录集的使用限制,临时函数与存储过程的支持不足等问题,并提出了对SQL Server功能改进的需求。
2544

被折叠的 条评论
为什么被折叠?



