昨晚参加的某商城笔试题,先来看看SQL的题第一题:假设某商品表为 tabletest ,使用一条SQL语句查询出所有字段为 shop_id 取值重复的记录 第二题:假设某商品表 tabletest中 price字段表示价格, promote_price字段表示促销时期价格,请用一条SQL 语句实现,当前月份为 6月时, 使用promote_price字段代替 price字段 大家谈谈自己的答案? 还有其他题,待会儿再放出来讨论!

解决方案 »

  1.   


    --> 测试数据:[tabletest]
    if object_id('[tabletest]') is not null drop table [tabletest]
    create table [tabletest]([shop_id] int,[price] int,[promote_price] numeric(3,1))
    insert [tabletest]
    select 1,40,35 union all
    select 2,10,9 union all
    select 2,11,8 union all
    select 3,36,30 union all
    select 4,20,19 union all
    select 5,28,20 union all
    select 5,93,63 union all
    select 6,10,9.5--1.
    SELECT * FROM [tabletest] t WHERE 
    (SELECT COUNT(1) FROM [tabletest] WHERE [shop_id]=t.[shop_id])>1
    /*
    shop_id     price       promote_price
    ----------- ----------- ---------------------------------------
    2           10          9.0
    2           11          8.0
    5           28          20.0
    5           93          63.0
    */--2.
    SELECT  shop_id ,
            CASE WHEN DATEPART(m, GETDATE()) = 6 THEN [promote_price]
                 ELSE [price]
            END AS price
    FROM    [tabletest]
    /*
    shop_id     price
    ----------- ---------------------------------------
    1           40.0
    2           10.0
    2           11.0
    3           36.0
    4           20.0
    5           28.0
    5           93.0
    6           10.0
    */
      

  2.   


    大牛就是大牛,学习了
    SELECT * FROM [tabletest] t WHERE 
    (SELECT COUNT(1) FROM [tabletest] WHERE [shop_id]=t.[shop_id])>1
    但是这句不是很懂? 可否讲述下
      

  3.   


    天晓得啊, 去了至少一千人,我估计了下, 200个研究生,  700个重本的,  然后就是其他高校的了~  伤不起啊,  只招10个
    你这种公司,普通本科生恐怕没法进去哦!虽然很难,但是还是有去的,我们系二本一个, 每年还是有那么几个人回去百度,腾讯,阿里之类的。 不够这些都是学院的大神我也是二本,今年刚毕业的。希望以后有机会去这些公司面试
    恩  大家多多交流,分享资源!  你也是.NET方向的?
      

  4.   


    天晓得啊, 去了至少一千人,我估计了下, 200个研究生,  700个重本的,  然后就是其他高校的了~  伤不起啊,  只招10个
    你这种公司,普通本科生恐怕没法进去哦!虽然很难,但是还是有去的,我们系二本一个, 每年还是有那么几个人回去百度,腾讯,阿里之类的。 不够这些都是学院的大神我也是二本,今年刚毕业的。希望以后有机会去这些公司面试
    恩  大家多多交流,分享资源!  你也是.NET方向的?
    嗯,目前在公司做asp.net,以前实习期做过winform。你是还没有毕业吗
      

  5.   


    天晓得啊, 去了至少一千人,我估计了下, 200个研究生,  700个重本的,  然后就是其他高校的了~  伤不起啊,  只招10个
    你这种公司,普通本科生恐怕没法进去哦!虽然很难,但是还是有去的,我们系二本一个, 每年还是有那么几个人回去百度,腾讯,阿里之类的。 不够这些都是学院的大神我也是二本,今年刚毕业的。希望以后有机会去这些公司面试
    恩  大家多多交流,分享资源!  你也是.NET方向的?
    嗯,目前在公司做asp.net,以前实习期做过winform。你是还没有毕业吗恩 对,今年大四,正在找工作中
      

  6.   

    select * from shop_id in (
    select shop_id from tabletest  group by shop_id hanving(*) >1) order by shop_id
    update tabletest set price = promote_price where yf = '6月'
      

  7.   


    select a.* from tabletest a join(
    select shop_id from tabletest group by shop_id having count(1)>1
    )b on a.shop_id=b.shop_id