易截截图软件、单文件、免安装、纯绿色、仅160KB

从【各大软件公司笔试压轴题】学习SQL语句

从博客园中看到一篇文章,介绍大软件公司面试时常常会出的两道SQL题(见附录)。
我觉得受益很多,在此之前,我一直觉得,SQL2008似乎提供了这方面的支持,但更低的版本,包括2005,非游标做不出来(水平够菜)。总结心得如下:
1、    强大的group by
1
 select stdname,
2
 isnull(sum(
case
 stdsubject when 
'
化学
'
 then Result end),
0
) [化学],
3
 isnull(sum(
case
 stdsubject when 
'
数学
'
 then Result end),
0
) [数学],
4
 isnull(sum(
case
 stdsubject when 
'
物理
'
 then Result end),
0
) [物理],
5
 isnull(sum(
case
 stdsubject when 
'
语文
'
 then Result end),
0
) [语文] 
6
 from #student 
7
 group by stdname
在这里,group by与sum +
case结合,可以将表1中的记录(行)变成表2的字段(列)。Sum里面如果没有case,那么出来的值,只能是全部科目的总和,用了case以后,就
是某科的成绩;然后这里用了好几个sum,每个科目一个sum,于是表1中本来某人某科占一条记录的“行”就变成了表2里某人一条记录,每科做一个字段
了。
这种心思巧妙和对语法的熟练运用让人击节赞叹。
2、    利用select from (select from)的模式生成SQL语句
1
 declare @sql varchar(
4000

2
 set
 @sql 
=
 
'
select stdname
'
 
3
 select @sql 
=
 @sql 
+
 
'
,isnull(sum(case stdsubject when 
'''
+
stdsubject
+
'''
 then Result end),0) [
'
+
stdsubject
+
'
]
'
 
4
 from (select distinct stdsubject from #student) 
as
 a 
5
 select @sql 
=
 @sql
+
'
 from #student group by stdname
'
 
6
 print @sql
7
 exec(@sql)
为了自动写上所有的科目,这里先将科目信息提炼出来:
4
 from


相关文档:

Sql Sever 2005 视图的操作

很多人特别喜欢用视图,但有的人从来不用视图.这都是两种不良的习惯.     要明确视图可以完成的工作以及使用场合.
     1.阻止选择保密列
     2.降低用户读取数据库内数据的复杂性  
     3.在数据库中添加索引以加速 ......

SQL Server2005 远程访问配置

       从网络上看到不少关于数据库远程访问配置的文章,给我的大体印象就是配置过程复杂冗余,有不少还是错误的配制方法,大多数都让人感觉费解,鉴于此,我自己根据实际操作,写了一个数据库远程访问的配置方法,力求简单有效。有对下面配置有疑问的可以留言,我将作出回答。
1. &nb ......

在SQL SERVER中实现RSA加密算法

/***************************************************  
          作者:herowang(让你望见影子的墙)
    日期:2010.1.1
          注:    转载请保留此信息
  & ......

SQL 时间格式(转)

Select CONVERT(varchar(100), GETDATE(), 0) as 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1) as 05/16/06
Select CONVERT(varchar(100), GETDATE(), 2) as 06.05.16
Select CONVERT(varchar(100), GETDATE(), 3) as 16/05/06
Select CONVERT(varchar(100), GETDATE(), 4) as 16.05.06
Select CON ......

SQL Server性能优化的一些技巧


数据库性能优化涉及到很多方面,在数据库开发时可以通过一些基本的优化技巧提高数据库的性能:
1.原则上为创建的每个表都建立一个主键,主键唯一标识某一行记录,用于强制表的实体完整性。SQL Server 2005 Database Engine 将通过为主键列创建唯一索引来强制数据的唯一性。查询中使用主键时,此索引还可用来对数据进行快 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号