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

推荐订阅源

V
V2EX
C
Check Point Blog
博客园_首页
B
Blog
D
Docker
U
Unit 42
量子位
I
InfoQ
有赞技术团队
有赞技术团队
Martin Fowler
Martin Fowler
GbyAI
GbyAI
L
LangChain Blog
云风的 BLOG
云风的 BLOG
博客园 - Franky
美团技术团队
T
The Blog of Author Tim Ferriss
阮一峰的网络日志
阮一峰的网络日志
月光博客
月光博客
Vercel News
Vercel News
Recent Announcements
Recent Announcements
雷峰网
雷峰网
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
Google DeepMind News
Google DeepMind News

博客园 - 155144

GridView和DataFormatString 32.DataReader和output参数的问题 31.动态SQL中使用变量时,可使用存储过程sp_executesql 【求解算法的时间复杂度的具体步骤】 【指数与对数】 30.一个自定义32进制类初稿 【SQL行转列】 29.DataReader相关 28.Lc.exe 已退出,代码 -1 27.PowerDesigner中Stereotype的创建 26.UML笔记(UML2.0设计手册) 25.VSS相关 24.GRIDVIEW相关 23.DOTNET中引用相关 22.使用Castle时,如何获取自定义类的单个属性的PropertyAttribute.Column 21-ReSharper UnitRun for .net 20-系统分析与设计(第5版) 19-关于用例的几点知识——摘自《道法自然》 18-概念性系统设计
【经典SQL语句 】
155144 · 2008-10-30 · via 博客园 - 155144

_____________________________________________________________________________________
声明:此文摘自网络,仅供学习研究之用.                                                                                                       
1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用)
   法一:select * into b from a where 1<>1
   //a必须是已经存在的表,但是b可以不存在,当b不存在时,系统会自己创建表b,该方法只会复制表的结构,而不会复制表的数据
   法二:select top 0 * into b from a
   //a必须是已经存在的表,但是b可以不存在,当b不存在时,系统会自己创建表b,系统会将a表的结构和全部数据都复制到表b中

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

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

26、说明:外连接查询(表名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

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

28、说明:两张关联表,删除主表中已经在副表中没有的信息
   delete from info where not exists
      ( select * from infobz where info.infid=infobz.infid )

29、找出表中某一列相同的数据行
   SELECT *
   FROM 文章信息
   WHERE (文章标题 IN
      (SELECT 文章标题
       FROM 文章信息
       HAVING COUNT(*) > 1))

30、查找员工的编号、姓名、部门和出生日期,如果出生日期为空值,
----显示日期不详,并按部门排序输出,日期格式为yyyy-mm-dd。
   select emp_no ,emp_name ,dept ,
      isnull(convert(char(10),birthday,120),'日期不详') birthday
   from employee
   order by dept

31、按姓氏笔画排序
   select * from 表名 order by 列名 Collate Chinese_PRC_Stroke_ci_as

32、查看硬盘分区:
   EXEC master..xp_fixeddrives

33、列出数据库里所有的表名
   select name from sysobjects where type='U'

34列出表里的所有的字段
   select name from syscolumns where id=object_id('TableName')

35select count(distinct(xh)) from vehicles

_____________________________________________________________________________________
COPYRIGHT©2008,HTTP://ZEROBUG.CNBLOGS.COM .ALL RIGHTS RESERVED.