SQL Server 2005相对于SQL Server 2000做了很大的改进,许些新特性是非常实用的。本文中将通过几个具体示例进行详细的说明。( 这些例子引用Northwind库) 1. TOP 表达式 SQL Server 2000的TOP是个固定值,是不是觉得差强人意,现在改进了。 --前n名的订单 declare @n int set @n = 10 select TOP(@n) * from Orders 2. 分页 不知大家过去用SQL Server 2000是如何分页的,大多都用到了临时表。SQL Server 2005就支持分页,性能也非常不错。 --按Freight从小到大排序,求20到30行的结果 select * from(select OrderId, Freight, ROW_NUMBER() OVER(order by Freight) as row from Orders) a where row between 20 and 30 3. 排名 select * from(select OrderId, Freight, RANK() OVER(orde
.... [阅读全文]
查看并导出SQL Server 2000数据表中字段的注释信息:此示例为导出某个表注释的语句:(表名是bbs_bank_log) 以下为引用的内容:SELECT sysobjects.name AS 表名, syscolumns.name AS 列名, systypes.name AS 数据类型, syscolumns.length AS 数据长度, CONVERT(char, sysproperties.[value]) AS 注释FROM sysproperties RIGHT OUTER JOINsysobjects INNER JOINsyscolumns ON sysobjects.id = syscolumns.id INNER JOINsystypes ON syscolumns.xtype = systypes.xtype ON sysproperties.id = syscolumns.id AND sysproperties.smallid = syscolumns.colidWHERE (sysobjects.xtyp
.... [阅读全文]
如何从一位菜鸟蜕变成为高手,灵活使用的SQL语句是必不可少的。本文收集了部分比较经典,常用的SQL语句供大家参考,希望对大家有所帮助。 说明:复制表(只复制结构,源表名:a 新表名:b) SQL: select * into b from a where 1<>1 说明:拷贝表(拷贝数据,源表名:a 目标表名:b) SQL: insert into b(a, b, c) select d,e,f from b; 说明:显示文章、提交人和最后回复时间 SQL: select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b 说明:外连接查询(表名1:a 表名2:b) SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c 说明:日程安排提前五分钟提醒 SQL: select * from 日
.... [阅读全文]
我们开发数据库应用时,常常需要用到模糊查询。如果同一个条件需要匹配很多字段怎么办呢?通常,程序员会每个字段都在SQL中“field like'%cond%'”一次。这样,SQL语句会长得惊人,碰上复杂一点的,甚至SQL语句会因为超长而被数据库拒绝执行。其实,这个问题只要动动脑筋就很容易解决:首先,将要匹配相同条件的字段连起来(field1+field2+...)成一个长字符串;然后再 Like “%cond%”就可以了。不过这种方法有个问题,就是得权衡多表连接造成的效率降低。一般来说,单表内字段肯定应该连接后再统一like判断;表间字段,则需要先过滤后,再实行这个策略。采取这个策略,不仅可以缩短SQL,而且能够有效地提高SQL的执行效率。例: 以下为引用的内容: QUOTE: create table orders (id int not null auto_increment,name varchar(100) not null,email var
.... [阅读全文]