您的位置:首页 > 数据库

SQL临时表建立和使用的一个例子

2008-12-01 14:16 363 查看
 
SQL临时表建立和使用的一个例子
 
比如表 from1
姓名  语文  数学  英语
张A  82    78    64
孙B  88    90    89
刘A  91    84    73

列出张A 孙B 刘A的科目成绩的最高分

 
DECLARE @a TABLE(姓名varchar(20),  语文int, 数学int,  英语  int)
INSERT @a select '张A', 82,   78,   64
union all select '孙B', 88,   90,   89
union all select '刘A', 91,   84,   73
SELECT 姓名,CASE WHEN 英语>(CASE WHEN 语文>数学then 语文else 数学end) 
        THEN   英语
         ELSE 
           CASE WHEN 语文>数学then 语文else 数学end
       END 成绩
FROM @a

--result
/*
姓名                   成绩         
-------------------- -----------
张A                            82
孙B                            90
刘A                            91
(所影响的行数为 3 行)
*/
 
个人意见

DECLARE @a TABLE(姓名 varchar(20),  语文 int, 数学 int,  英语  int)
INSERT @a select '张A',  82,    78,    64
union all select '孙B',  88,    90,    89
union all select '刘A',  91,    84,    73

DECLARE @b TABLE(姓名 varchar(20), 学科 varchar(20),  成绩 int)
INSERT @b select 姓名,  '语文',  语文 from @a
union all select 姓名,  '数学',  数学 from @a
union all select 姓名,  '英语',  英语 from @a

SELECT 姓名,(select 学科 from @b where 成绩=(select max(成绩) from @b where 姓名=bb.姓名)) as 学科,max(成绩) as 最高成绩
FROM @b as bb group by 姓名 order by 姓名

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sql insert table