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

 
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 姓名

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值