5. 列出“1”号课成绩比“2”号课成绩高的所有学生的学号及其“1”号课和“2”号课的成绩
--实现代码:SELECT SC1.SNO,[1号课成绩]=SC1.SCGRADE,[2号课成绩]=SC2.SCGRADEFROM SC SC1,SC SC2WHERE SC1.CNO='1' AND SC2.CNO='2' AND SC1.SNO=SC2.SNO AND SC1.SCGRADE>SC2.SCGRADE[@more@]
2. 列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩
--实现代码:SELECT S.SNO,S.SNAME,AVG_SCGRADE=AVG(SC.SCGRADE)FROM S,SC,( SELECT SNO FROM SC WHERE SCGRADE<60 GROUP BY SNO HAVING COUNT(DISTINCT CNO)>=2)A WHERE S.SNO=A.SNO AND SC.SNO=A.SNOGROUP BY S.SNO,S.SNAME[@more@]
3. 列出既学过“1”号课程,又学过“2”号课程的所有学生姓名
--实现代码:SELECT S.SNO,S.SNAMEFROM S,( SELECT SC.SNO FROM SC,C WHERE SC.CNO=C.CNO AND C.CNAME IN('1','2') GROUP BY SNO HAVING COUNT(DISTINCT CNO)=2)SC WHERE S.SNO=SC.SNO [@more@]
SQL Server练习题2
问题描述:已知关系模式:S (SNO,SNAME) 学生关系。SNO 为学号,SNAME 为姓名C (CNO,CNAME,CTEACHER) 课程关系。CNO 为课程号,CNAME 为课程名,CTEACHER 为任课教师SC(SNO,CNO,SCGRADE) 选课关系。SCGRADE 为成绩要求实现如下5个处理: 1. 找出没有选修过“李明”老师讲授课程的所有学生姓名 2. 列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩 3. 列出既学过“1”号课程,又学过“2”号课程的所有学生姓名 4. 列出“1”号课成绩比“2”号同学该门课成绩高的所有学生的学号 5. 列出
1. 找出没有选修过“李明”老师讲授课程的所有学生姓名
--实现代码:SELECT SNAME FROM SWHERE NOT EXISTS( SELECT * FROM SC,C WHERE SC.CNO=C.CNO AND C.CTEACHER='李明' AND SC.SNO=S.SNO)[@more@]
6. 查询选修课程超过5门的学员学号和所属单位
--实现代码:SELECT SN,SD FROM SWHERE [S#] IN( SELECT [S#] FROM SC GROUP BY [S#] HAVING COUNT(DISTINCT [C#])>5)[@more@]
5. 查询选修了课程的学员人数
--实现代码:SELECT 学员人数=COUNT(DISTINCT [S#]) FROM SC[@more@]
3. 使用标准SQL嵌套语句查询不选修课程编号为’C5’的学员姓名和所属单位
--实现代码:SELECT SN,SD FROM SWHERE [S#] NOT IN( SELECT [S#] FROM SC WHERE [C#]='C5')[@more@]
4. 使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位
--实现代码:SELECT SN,SD FROM SWHERE [S#] IN( SELECT [S#] FROM SC RIGHT JOIN C ON SC.[C#]=C.[C#] GROUP BY [S#] HAVING COUNT(*)=COUNT(DISTINCT [S#]))[@more@]
1. 使用标准SQL嵌套语句查询选修课程名称为’税收基础’的学员学号和姓名
--实现代码:SELECT SN,SD FROM SWHERE [S#] IN( SELECT [S#] FROM C,SC WHERE C.[C#]=SC.[C#] AND CN=N'税收基础')[@more@]
2. 使用标准SQL嵌套语句查询选修课程编号为’C2’的学员姓名和所属单位
--实现代码:SELECT S.SN,S.SD FROM S,SCWHERE S.[S#]=SC.[S#] AND SC.[C#]='C2'[@more@]
题目1
问题描述:为管理岗位业务培训信息,建立3个表:S (S#,SN,SD,SA) S#,SN,SD,SA 分别代表学号、学员姓名、所属单位、学员年龄C (C#,CN ) C#,CN 分别代表课程编号、课程名称SC ( S#,C#,G ) S#,C#,G 分别代表学号、所选修的课程编号、学习成绩要求实现如下5个处理: 1. 使用标准SQL嵌套语句查询选修课程名称为’税收基础’的学员学号和姓名 2. 使用标准SQL嵌套语句查询选修课程编号为’C2’的学员姓名和所属单位 3. 使用标准SQL嵌套语句查询不选修课程编号为’C5’的学员姓名和所属单位 4. 使用标准SQL嵌套语句查询选
ASP.NET 中的正则表达式
Microsoft®.NET Framework 对正则表达式的支持是一流的,甚至在 Microsoft® ASP.NET 中也有依赖正则表达式语言的控件。本文介绍了深入学习正则表达式的基础知识和推荐内容。本文主要面向对正则表达式知之甚少或没有使用经验,但却熟悉 ASP.NET、可借助 .NET 编程的初学者。此外,希望本文连同 regular expression cheat sheet 成为有正则表达式使用经验的开发者的手头参考资料或进修资料。本文讨论内容如下: 1.正则表达式使用历史简介 2.简单表达式 3.限定符 4.元字符 5.字符类 6.预定义的集合元字符 7.表达式示例详细内容 8.ASP
Ultraedit的SQL Server语法着色模板
添加方法,将有颜色标注部分的文字复制到Ultraedit安装文件夹的wordfile.txt文档末尾,可以修改文字中的红色部分(20)为你想添加的语言编号 /L20"SQL Server 2000" Nocase Block Comment On = /* Block Comment Off = */ Line Comment = -- String Chars = "' File Extensions = SQL TQL /Delimiters = @%^&*()-+|/[];"'<> , . /Indent Strings = "begin" "else" /Unindent Strings = "end" "else" /Function String = "%create [a-zA-Z_]*" /C1"Comm
有感于联机帮助
关于数据库备份,联机帮助上有如下两个说法backup database 的 DIFFERENTIAL 选项说明指定数据库备份或文件备份应该与上一次完整备份后改变的数据库或文件部分保持一致。差异备份一般会比完整备份占用更少的空间。对于上一次完整备份时备份的全部单个日志,使用该选项可以不必再进行备份。有关更多信息,请参见差异数据库备份和文件差异备份。 差异数据库备份 的说明差异数据库备份只记录自上次数据库备份后发生更改的数据。差异数据库备份比数据库备份小而且备份速度快,因此可以更经常地备份,经常备份将减少丢失数据的危险。 就是这第二
查询区分大小写
在sql2000和7.0的查询语句中,区分大写的查询方法--sql2000,就用下面的方法.--就是在字段名后加 collate Chinese_PRC_CS_AS_WS --区分大小写、全半角字符的方法--测试数据create table 表(fd varchar(10))insert into 表select aa='aa'union all select 'Aa'union all select 'AA' --全角Aunion all select 'A,A' --全角A,半角,union all select 'A,A' --全角A,全角,go--查询--1.查大写字母select * from 表where fd collate Chinese_PRC_CS_AS_WS like '%A%' --就是在字段名后加 collate Chinese_PRC_CS_AS_WS --2.查全角s
拼音处理
/*-1.-获得汉字字符串的首字母 根据大力的贴子改成.将大力的两个函数合并成了一个函数. 可以应用于助记码的查询--转载(最早见于j9988的发表,具体原作者不明)--*/if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fGetPy]') and xtype in (N'FN', N'IF', N'TF'))drop function [dbo].[fGetPy]GO--创建取拼音函数create function fGetPy(@Str varchar(500)='')returns varchar(500)asbegin declare @strlen int,@return varchar(500),@ii int declare @n int,@c char(1),@chn nchar(1) select @strlen=len(@str)
ADODB.Recordset对象在分页处理中的问题
问题描述: 调用存储过程返回临时表的进行分页处理时,出现错误“当前记录集不支持书签。这可能是提供程序或选定的游标类型的限制。” 代码如下: set comm = Server.CreateObject("ADODB.COMMAND") comm.CommandText = "keywordcount"'过程名 comm.CommandType = 4'4表示为存储过程 set comm.activeconnection=conn comm.Parameters.Append comm.CreateParameter("tseek",advarchar,adParamInput,50,keyword) comm.parameters.append comm.createparameter("counts",adinteger,adparamoutput,
随机排序分页处理示例
/*--原帖地址:http://community.csdn.net/Expert/topic/3845/3845647.xml?temp=.7272455--*//*--处理要求用如下语句可以实现随机排序:select * from xiaofei where status=1 order by newid()这样的话每次用户刷新页面排序就会变.现在我想做成不同用户进来页面看到的排序都不一样,但是同一个用户在一段时间内每次刷新页面看到的排序都是一样的--*/go/*--处理分析借助临时表缓存排序结果,再结合原表主键查询数据就可以了--*/--大致的处理存储过程create proc p_qry@username sysname, --用户名,根据用户名来设定排序处理的临时表@pagesi
特殊分页处理
--测试数据create table tb(ID int primary key,grade varchar(10),uptime datetime)insert tb select 1 ,'a','2004-12-11'union all select 2 ,'b','2004-12-11'union all select 3 ,'c','2004-12-11'union all select 4 ,'a','2004-12-12'union all select 5 ,'c','2004-12-13'union all select 6 ,'c','2004-12-13'union all select 7 ,'a','2004-12-14'union all select 8 ,'a','2004-12-15'union all select 9 ,'b','2004-12-16'union all select 10,'b','2004-12-17'union all select 11,'a','2004-12-17'go/*--分页处理要求每页5条