a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 122|回复: 1

[数据库] 2012年计算机三级数据库技术SQL语句辅导:提升篇(2)

[复制链接]
发表于 2012-7-31 21:12:12 | 显示全部楼层 |阅读模式
16、说明:包括所有在 TableA 中但不在 TableB和TableC 中的行并消除所有重复行而派生出一个结果表   (select a from tableA ) except (select a from tableB) except (select a from tableC)' v6 o* X, ~4 j$ G
  17、说明:随机取出10条数据* ^- R  ~8 C, Q( D9 z% N+ ?
  select top 10 * from tablename order by newid()
6 e$ m: V1 G, G! _' R; h" D, u  18、说明:随机选择记录
0 H: g2 q3 W7 t! t1 g/ ~7 S& o  select newid()& r8 _7 w% S7 t8 h
  19、说明:删除重复记录
$ U5 _- V$ N% a6 q$ F- {& n# s0 h  1),delete from tablename where id not in (select max(id) from tablename group by col1,col2,...)
. X- O( k9 [) P- V- u* |, |; N6 U% ~  2),select distinct * into temp from tablename
; [6 U: t4 @0 [$ d3 N  delete from tablename) p& @1 m5 E, E
  insert into tablename select * from temp
; D: z8 ~7 y2 o% W1 _9 U  评价: 这种操作牵连大量的数据的移动,这种做法不适合大容量但数据操作4 ]$ j5 C5 e: k8 B2 s7 u$ X/ F
  3),例如:在一个外部表中导入数据,由于某些原因第一次只导入了一部分,但很难判断具体位置,这样只有在下一次全部导入,这样也就产生好多重复的字段,怎样删除重复字段
6 u# f" T" W% n" d) u  alter table tablename
4 _7 X- {, J4 W  --添加一个自增列
. \) }* e9 D' M; y  add column_b int identity(1,1)6 q; j; E- b- B) a, P0 n, j. R
  delete from tablename where column_b not in(
, Z8 ?; H) k  `' D  select max(column_b) from tablename group by column1,column2,...)
" i( L  R- {: A+ w0 l. I9 ?. K  alter table tablename drop column column_b
" r5 C7 \: c# `4 Q; G4 H7 \1 K  20、说明:列出数据库里所有的表名3 H! {7 g7 V$ P  t

) T. [& r- N+ L6 e2 Y, ~  select name from sysobjects where type='U' // U代表用户
回复

使用道具 举报

 楼主| 发表于 2012-7-31 21:12:13 | 显示全部楼层

2012年计算机三级数据库技术SQL语句辅导:提升篇(2)

</p>  21、说明:列出表里的所有的列名
' W, X) @7 \+ D, M  select name from syscolumns where id=object_id('TableName')1 Y) P/ Q  q9 `1 g; W
  22、说明:列示type、vender、pcs字段,以type字段排列,case可以方便地实现多重选择,类似select 中的case。  _6 w$ K6 k' k& F+ p- v
  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 type4 V6 j; Z2 q# `8 y: Z
  显示结果:! W" v9 i+ {; g! d
  type vender pcs
) F) `+ l4 u3 G  电脑 A 11 @8 c+ s" X# Q- T
  电脑 A 1$ j3 l* J" u% \; W8 U
  光盘 B 29 Z; F  E0 Z+ {! D" h, d. I
  光盘 A 20 o' W" G9 y3 F' ~9 b
  手机 B 35 ?8 v, I! K  B
  手机 C 36 y( G, I/ y; E' h
  23、说明:初始化表table1) c5 q2 J1 v; w( w% I( h8 p: w- y- v
  TRUNCATE TABLE table1
4 p6 r: J# ^: j6 }7 n3 R  24、说明:选择从10到15的记录
& Z. }+ l% \( w! N" l3 T9 D  select top 5 * from (select top 15 * from table order by id asc) table_别名 order by id desc
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-5 07:47 , Processed in 0.188558 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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