有表A
sid(自己标识列) sName(姓名) Skemu(科目) Score(成绩)
1 asdas 数学 85
2 asdas 语文 65
3 ddddd 数学 55
4 ddddd 语文 66
`
`
`
有N条数据..
问题1:
求第10 到 15行的数据...
问题2:
求"每门成绩大于85分"同学的姓名
问题3:
要求如下显示结果集
姓名 数学 语文
asdas 85 65
ddddd 55 66
sid(自己标识列) sName(姓名) Skemu(科目) Score(成绩)
1 asdas 数学 85
2 asdas 语文 65
3 ddddd 数学 55
4 ddddd 语文 66
`
`
`
有N条数据..
问题1:
求第10 到 15行的数据...
问题2:
求"每门成绩大于85分"同学的姓名
问题3:
要求如下显示结果集
姓名 数学 语文
asdas 85 65
ddddd 55 66
SELECT TOP 5 * FROM (SELECT TOP 15 * FROM TB ORDER BY SID) AS T ORDER BY ID DESC
SELECT * FROM TB T
WHERE NOT EXISTS(SELECT 1 FROM TB WHERE Skemu=T.Skemu AND Score<85)
求第10 到 15行的数据...-------------------------------------
应该是 top 6 吧
declare @table table(sid int, sName varchar(10), Skemu varchar(10), Score int)
insert into @table
select 1, 'asdas','math' ,86 union all
select 2, 'asdas', 'lan', 95 union all
select 25, 'asdas', 'eng', 95 union all
select 3, 'ddddd', 'math', 95 union all
select 4, 'ddddd', 'lan', 66select sname
from @table
where score>85
group by sname
having count(sname)=(select count(distinct(skemu)) from @table)
select
sName,
max(case Skemu when '数学' then Score else '' end) as '数学' ,
max(case Skemu when '语文' then Score else '' end) as '语文'
from
tb
group by
sName