一个表,比如按province分组,但是数据有“北京”,还有“北京2013”,我想把这两天记录分为一组,group by 后怎么写,我用group by trim(province)不起作用,急,请教大神么,应该很简单

解决方案 »

  1.   

    select case province when '北京2013' then 'beijing' else province end,*
    from 表
      

  2.   

    group by substring(province,1,2);
      

  3.   

    不是,北京只是一个例子,province里有好多省,我是要用province分组
      

  4.   

    就是说  province 里面只取汉字部分咯?
      

  5.   

    另外建一个表t_province,列fname只存省名。
    然后
    select
    *
    from
    (
        select
        province,fname
        from
        t_table,t_province
        where
        province like concat('%',fname,'%')
    )t
    group by fname;另外,上述查询无法使用索引,效率很低,说明数据库需要进行拆分列的重构
      

  6.   

       建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式http://bbs.csdn.net/topics/320211382
       
       1. 你的 create table xxx .. 语句
       2. 你的 insert into xxx ... 语句
       3. 结果是什么样,(并给以简单的算法描述)
       4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。