有趣的SQL(如何去掉一个最高分,一个最低分)

通过以下SQL 可以实现去掉一个最高分一个最低分 而且即就是最高 最低分有重复的也可以实现。

示例数据:

 评委     歌手     得分

A175
A250
A378
A466
B188
B280
B377
B467
C175
C260
C390
C479
D188
D268
D389
D470
NULLNULLNULL

数据库创建如下:

CREATE TABLE [dbo].[tb](
    [评委] [varchar](
1 ) COLLATE Chinese_PRC_CI_AS NULL,
    [歌手] [
int ] NULL,
    [得分] [
int ] NULL
) ON [PRIMARY]

SQL实现如下:

SELECT  *  FROM dbo.tb  as  a WHERE 评委  +  cast(得分  as  varchar( 10 )) not  in  (
select top 
1  评委  +  cast(得分  as  varchar( 10 )) FROM dbo.tb  where  tb.歌手  =  a.歌手 ANd tb.得分  =  (SElect min(得分) FROM tb  as  c  where  歌手  =  a.歌手)
union all
select top 
1  评委  +  cast(得分  as  varchar( 10 )) FROM dbo.tb  where  tb.歌手  =  a.歌手 ANd tb.得分  =  (SElect Max(得分) FROM tb  as  c  where  歌手  =  a.歌手))

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值