分享一些不错的sql语句_绿色软件之家

绿色软件之家:您身边最放心的安全下载站! 最新更新|软件分类|软件专题|手机版|论坛转贴|软件发布

您当前所在位置: 首页数据库MSSQL → 分享一些不错的sql语句

分享一些不错的sql语句

时间:2015-06-28 00:00:00 来源:绿色软件之家 作者:网管联盟 我要评论(0)

1、说明:复制表(只复制结构,源表名:a?? 新表名:b)?? (Access可用)
法一:select?? *?? into?? b?? from?? a?? where?? 1 <> 1
法二:select?? top?? 0?? *?? into?? b?? from?? a

2、说明:拷贝表(拷贝数据,源表名:a?? 目标表名:b)?? (Access可用)
insert?? into?? b(a,?? b,?? c)?? select?? d,e,f?? from?? b;

3、说明:跨数据库之间表的拷贝(具体数据使用绝对路径)?? (Access可用)
insert?? into?? b(a,?? b,?? c)?? select?? d,e,f?? from?? b?? in?? ‘具体数据库’?? where?? 条件
例子:..from?? b?? in?? ' "&Server.MapPath( ". ")& "\data.mdb "?? & " '?? where..

4、说明:子查询(表名1:a?? 表名2:b)
select?? a,b,c?? from?? a?? where?? a?? IN?? (select?? d?? from?? b?? )?? 或者:?? select?? a,b,c?? from?? a?? where?? a?? IN?? (1,2,3)

5、说明:显示文章、提交人和最后回复时间
select?? a.title,a.username,b.adddate?? from?? table?? a,(select?? max(adddate)?? adddate?? from?? table?? where?? table.title=a.title)?? b

6、说明:外连接查询(表名1:a?? 表名2:b)
select?? a.a,?? a.b,?? a.c,?? b.c,?? b.d,?? b.f?? from?? a?? LEFT?? OUT?? JOIN?? b?? ON?? a.a?? =?? b.c

7、说明:在线视图查询(表名1:a?? )
select?? *?? from?? (SELECT?? a,b,c?? FROM?? a)?? T?? where?? t.a?? >?? 1;

8、说明:between的用法,between限制查询数据范围时包括了边界值,not?? between不包括
select?? *?? from?? table1?? where?? time?? between?? time1?? and?? time2
select?? a,b,c,?? from?? table1?? where?? a?? not?? between?? 数值1?? and?? 数值2

9、说明:in?? 的使用方法
select?? *?? from?? table1?? where?? a?? [not]?? in?? (‘值1’,’值2’,’值4’,’值6’)

10、说明:两张关联表,删除主表中已经在副表中没有的信息??
delete?? from?? table1?? where?? not?? exists?? (?? select?? *?? from?? table2?? where?? table1.field1=table2.field1?? )

11、说明:四表联查问题:
select?? *?? from?? a?? left?? inner?? join?? b?? on?? a.a=b.b?? right?? inner?? join?? c?? on?? a.a=c.c?? inner?? join?? d?? on?? a.a=d.d?? where?? .....

12、说明:日程安排提前五分钟提醒??
SQL:?? select?? *?? from?? 日程安排?? where?? datediff( 'minute ',f开始时间,getdate())> 5

13、说明:一条sql?? 语句搞定数据库分页
select?? top?? 10?? b.*?? from?? (select?? top?? 20?? 主键字段,排序字段?? from?? 表名?? order?? by?? 排序字段?? desc)?? a,表名?? b?? where?? b.主键字段?? =?? a.主键字段?? order?? by?? a.排序字段

14、说明:前10条记录
select?? top?? 10?? *?? form?? table1?? where?? 范围

15、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.)
select?? a,b,c?? from?? tablename?? ta?? where?? a=(select?? max(a)?? from?? tablename?? tb?? where?? tb.b=ta.b)

16、说明:包括所有在?? TableA?? 中但不在?? TableB和TableC?? 中的行并消除所有重复行而派生出一个结果表
(select?? a?? from?? tableA?? )?? except?? (select?? a?? from?? tableB)?? except?? (select?? a?? from?? tableC)

17、说明:随机取出10条数据
select?? top?? 10?? *?? from?? tablename?? order?? by?? newid()

18、说明:随机选择记录
select?? newid()

19、说明:删除重复记录
Delete?? from?? tablename?? where?? id?? not?? in?? (select?? max(id)?? from?? tablename?? group?? by?? col1,col2,...)

20、说明:列出数据库里所有的表名
select?? name?? from?? sysobjects?? where?? type= 'U '??

21、说明:列出表里的所有的
select?? name?? from?? syscolumns?? where?? id=object_id( 'TableName ')

22、说明:列示type、vender、pcs字段,以type字段排列,case可以方便地实现多重选择,类似select?? 中的case。
select?? type,sum(case?? vender?? when?? 'A '?? then?? pcs?? else?? 0?? end),sum(case?? vender?? when?? 'C '?? then?? pcs?? else?? 0?? end),sum(case?? vender?? when?? 'B '?? then?? pcs?? else?? 0?? end)?? FROM?? tablename?? group?? by?? type
显示结果:
type?? vender?? pcs
电脑?? A?? 1
电脑?? A?? 1
光盘?? B?? 2
光盘?? A?? 2
手机?? B?? 3
手机?? C?? 3

23、说明:初始化表table1
TRUNCATE?? TABLE?? table1

24、说明:选择从10到15的记录
select?? top?? 5?? *?? from?? (select?? top?? 15?? *?? from?? table?? order?? by?? id?? asc)?? table_别名?? order?? by?? id?? desc?

关键词标签:sql语句

相关阅读

文章评论
发表评论

热门文章 浅谈JSP JDBC来连接SQL Server 2005的方法 浅谈JSP JDBC来连接SQL Server 2005的方法 SqlServer2005对现有数据进行分区具体步骤 SqlServer2005对现有数据进行分区具体步骤 sql server系统表损坏的解决方法 sql server系统表损坏的解决方法 MS-SQL2005服务器登录名、角色、数据库用户、角色、架构的关系 MS-SQL2005服务器登录名、角色、数据库用户、角色、架构的关系

相关下载

    人气排行 配置和注册ODBC数据源-odbc数据源配置教程 如何远程备份(还原)SQL2000数据库 SQL2000数据库远程导入(导出)数据 SQL2000和SQL2005数据库服务端口查看或修改 修改Sql Server唯一约束教程 SQL Server 2005降级到2000的正确操作步骤 sql server系统表损坏的解决方法 浅谈JSP JDBC来连接SQL Server 2005的方法