易截截图软件、单文件、免安装、纯绿色、仅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 2005 存储过程分页 java 代码

 create PROCEDURE pagelist
@tablename nvarchar(50),
@fieldname nvarchar(50)='*',         
@pagesize int output,--每页显示记录条数
@currentpage int output,--第几页
@orderid nvarchar(50),--主键排序
@sort int,--排序方式,1表示升序,0表示降序排列 ......

rs.open sql,conn 与conn.execute(sql)的区别

rs.open sql,conn 与conn.execute(sql)的区别
            rs.open sql,conn 与conn.execute(sql)的区别
            rs.open
            ......

SQL操作全集

下列语句部分是Mssql语句,不可以在access中使用。
SQL分类:
DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)
DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)
DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)
首先,简要介绍基础语句:
1、说明:创建数据库
CREATE DATABASE data ......

Sql语句使用 50个示例

Student(S#,Sname,Sage,Ssex) 学生表
Course(C#,Cname,T#) 课程表
SC(S#,C#,score) 成绩表
Teacher(T#,Tname) 教师表
问题:
1、查询“001”课程比“002”课程成绩高的所有学生的学号;
  select a.S# from (select s#,score from SC where C#='001') a,(select s#,score
  fr ......

[SQL] patindex 详解

PATINDEX
返回指定表达式中某模式第一次出现的起始位置;如果在全部有效的文本和字符数据类型中没有找到该模式,则返回零。
语法
PATINDEX ( '%pattern%' , e­xpression )
参数
pattern
一个字符串。可以使用通配符,但 pattern 之前和之后必须有 % 字符(搜索第一个和最后一个字符时除外)。pattern 是短字符数 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号