代码
1
DROP table #student
2
CREATE TABLE #student (stdname nvarchar(
10
),stdsubject nvarchar(
10
),result
int
)
3
INSERT INTO #student VALUES (
'张三'
,
'语文'
,
80
)
4
INSERT INTO #student values (
'张三'
,
'数学'
,
90
)
5
INSERT INTO #student VALUES (
'张三'
,
'物理'
,
85
)
6
INSERT INTO #student VALUES (
'李四'
,
'语文'
,
85
)
7
INSERT INTO #student values (
'李四'
,
'数学'
,
92
)
8
INSERT INTO #student VALUES (
'李四'
,
'物理'
,
82
)
9
INSERT INTO #student VALUES (
'李四'
,
'化学'
,
82
)
10
INSERT INTO #student VALUES (
'李四'
,
'化学'
,
82
)
11
SELECT * FROM #student
可能很多老手们,一看到这题目就有了答案。当然,贴出答案来不是我的目的,我要带着 SQL 新手们
重构到答案。用李建忠老师最爱说的话就是------我不建议一上来就套用模式,而应该从重构到模式。
首先大家会想到分两组
1
select stdname,····,from #student group by stdname
然后······中间该写什么呢?
§§
代码
1
case
stdsubject when
'化学'
then Result end
2
case
stdsubject when
'语文'
then Result end
3
case
stdsubject when
'···'
then Result end
4
case
stdsubject when
'···'
then Result end
5
case
stdsubject when
'···'
then Result end