sql查询练习
例 34 找出年龄超过平均年龄的学生姓名。
SELECT SNAME
from STUDENTS
WHERE AGE >
(SELECT AVG(AGE)
from STUDENTS)
例 35 找出各课程的平均成绩,按课程号分组,且只选择学生超过 3 人的课程的成绩。( GROUP BY 与 HAVING
GROUP BY 子句把一个表按某一指定列(或一些列)上的值相等的原则分组,然后再对每组数据进行规定的操作。
GROUP BY 子句总是跟在 WHERE 子句后面,当 WHERE 子句缺省时,它跟在 from 子句后面。
HAVING 子句常用于在计算出聚集之后对行的查询进行控制。)
SELECT CNO, AVG(GRADE), STUDENTS = COUNT(*)
from ENROLLS
GROUP BY CNO
HAVING COUNT(*) >= 3
相关子查询
例 37 查询没有选任何课程的学生的学号和姓名。(当一个子查询涉及到一个来自外部查询的列时,称为相关子查询( Correlated Subquery) 。相关子查询要用到存在测试谓词 EXISTS 和 NOT EXISTS ,以及 ALL 、 ANY ( SOME )等。)
SELECT SNO, SNAME
from STUDENTS
WHERE NOT EXISTS
(SELECT *
from ENROLLS
WHERE ENROLLS.SNO=STUDENTS.SNO)
例 38 查询哪些课程只有男生选读。
SELECT DISTINCT CNAME
from COURSES C
WHERE ' 男 ' = ALL
相关文档:
CREATE PROCEDURE dbo.UspOutputData
@tablename sysname
AS
declare @column varchar(1000)
declare @columndata varchar(1000)
declare @sql varchar(4000)
declare @xtype tinyint
declare @name sysname
declare @objectId int
declare @objectname sysname
declare @ident int
set nocount on
......
大家打开这个链接可以看到很多数据库的连接方法。http://www.connectionstrings.com
这些数据库之间的数据交换就是这个贴子所要总结的内容。
(一)SQL Server之间
把远程数据库中的数据导入到本地数据库。
http://community.csdn.net/Expert/topic/5079/5079649.xml?temp=.7512018
http://community.csdn.net/Expert/ ......
请教大家一个有关SQL交驻报表查询问题,欢迎各位指教!
我想把图1的使用信息,使用SQL语句,实现如图2的结果。
表名
序号
字段名
a
1
c
a
2
d
a
3
e
a
4
f
a
5
g
b
1
h
b
2
i
b
3
j
b
4
k
b
5
l
c
1
m
c
2
n
c
3
o
c
4
p
c
5
q
图1
表名
序号
1
2
3
4
5
......
sql isnull函数的使用
ISNULL
使用指定的替换值替换 NULL。
语法
ISNULL ( check_expression , replacement_value )
参数
check_expression
将被检查是否为 NULL的表达式。check_expression 可以是任何类型的。
replacement_value
在 check_expression 为 NULL时将返回的表达式。replacement_value 必须与 chec ......