qq_38081404
IT界98新星
采纳率70.6%
2018-08-29 10:24

(pl/sql Oracle)怎么把重复的数据合成一行,不是重复的在合成的哪一行后面显示出来

5
已采纳

图片说明

(pl/sql Oracle )现在select出来是:上图这样 ,我要怎么把重复的数据合成一行,不是重复的在合成的一行后面显示出来。
显示后大概是这个样子 :

  • 2009111000006 成都市 2009 合作街道办事处清水村四组 空闲地 0.0000 121 坑塘水面 0.0169 114 河流水面 13.4615 111 空闲地 0.0565 121 坑塘水面 0.6411 114 河流水面 16.6105 111

谢谢大佬们了 这是我的sql语句~

                  select 
                  XT_INSTANCE.IID, 
                 XT_INSTANCE.行政区名称, 
                 XT_INSTANCE.年度, 
                 UT_SP_CLASS_AREA_DTL.UNIT_NAME ,
                 ut_sp_dl_dict.dl_name,
                 ut_sp_class_area_dtl2.dl_value,
                 ut_sp_class_area_dtl2.dl_id

                 from XT_INSTANCE,UT_SP_CLASS_AREA_DTL,UT_SP_BUILD_PROJ_LAND,UT_SP_CLASS_AREA_DTL2,ut_sp_dl_dict,sys_landtype_dict   where 1=1
                 and   UT_SP_BUILD_PROJ_LAND.Iid=XT_INSTANCE.Iid
                 and   UT_SP_BUILD_PROJ_LAND.iid=UT_SP_CLASS_AREA_DTL.iid
                 and UT_SP_CLASS_AREA_DTL.Iid=UT_SP_CLASS_AREA_DTL2.Iid
                 and ut_sp_dl_dict.type=2
                 and ut_sp_dl_dict.dl_id=ut_sp_dl_dict.dl_id
                 and ut_sp_dl_dict.dl_id=sys_landtype_dict.pro_code
                 and sys_landtype_dict.pro_code=ut_sp_class_area_dtl2.dl_id

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

4条回答

  • chinarealone chinarealone 3年前

    注意,以下语句中的max的使用,保证了group by的语法正确,同时不会造成结果的错误
    select
    XT_INSTANCE.IID,
    XT_INSTANCE.行政区名称,
    XT_INSTANCE.年度,
    UT_SP_CLASS_AREA_DTL.UNIT_NAME ,
    max(ut_sp_dl_dict.dl_name) as dl_name,
    max(ut_sp_class_area_dtl2.dl_value) as dl_value,
    max(ut_sp_class_area_dtl2.dl_id) as dl_id

                 from XT_INSTANCE,UT_SP_CLASS_AREA_DTL,UT_SP_BUILD_PROJ_LAND,UT_SP_CLASS_AREA_DTL2,ut_sp_dl_dict,sys_landtype_dict   where 1=1
                 and   UT_SP_BUILD_PROJ_LAND.Iid=XT_INSTANCE.Iid
                 and   UT_SP_BUILD_PROJ_LAND.iid=UT_SP_CLASS_AREA_DTL.iid
                 and UT_SP_CLASS_AREA_DTL.Iid=UT_SP_CLASS_AREA_DTL2.Iid
                 and ut_sp_dl_dict.type=2
                 and ut_sp_dl_dict.dl_id=ut_sp_dl_dict.dl_id
                 and ut_sp_dl_dict.dl_id=sys_landtype_dict.pro_code
                 and sys_landtype_dict.pro_code=ut_sp_class_area_dtl2.dl_id
    
                                GROUP BY   XT_INSTANCE.IID, XT_INSTANCE.行政区名称, XT_INSTANCE.年度, UT_SP_CLASS_AREA_DTL.UNIT_NAME 
    
    点赞 1 评论 复制链接分享
  • underthesun2008 underthesun2008 3年前

    拿去试试吧

       select 
                     XT_INSTANCE.IID, 
                     XT_INSTANCE.行政区名称, 
                     XT_INSTANCE.年度, 
                     UT_SP_CLASS_AREA_DTL.UNIT_NAME ,
                     ut_sp_dl_dict.dl_name,
                     ut_sp_class_area_dtl2.dl_value,
                     ut_sp_class_area_dtl2.dl_id
                                     wm_concat(ut_sp_dl_dict.dl_name || ' '|| ut_sp_class_area_dtl2.dl_value ||' '|| ut_sp_class_area_dtl2.dl_id)
    
                     from XT_INSTANCE,UT_SP_CLASS_AREA_DTL,UT_SP_BUILD_PROJ_LAND,UT_SP_CLASS_AREA_DTL2,ut_sp_dl_dict,sys_landtype_dict   where 1=1
                     and   UT_SP_BUILD_PROJ_LAND.Iid=XT_INSTANCE.Iid
                     and   UT_SP_BUILD_PROJ_LAND.iid=UT_SP_CLASS_AREA_DTL.iid
                     and UT_SP_CLASS_AREA_DTL.Iid=UT_SP_CLASS_AREA_DTL2.Iid
                     and ut_sp_dl_dict.type=2
                     and ut_sp_dl_dict.dl_id=ut_sp_dl_dict.dl_id
                     and ut_sp_dl_dict.dl_id=sys_landtype_dict.pro_code
                     and sys_landtype_dict.pro_code=ut_sp_class_area_dtl2.dl_id
    
                                    GROUP BY   XT_INSTANCE.IID, XT_INSTANCE.行政区名称, XT_INSTANCE.年度, UT_SP_CLASS_AREA_DTL.UNIT_NAME 
    
    点赞 1 评论 复制链接分享
  • qq_40240552 yxy_ibm 3年前

    完全一样,用distinct不行吗?

    点赞 评论 复制链接分享
  • huatengma huatengma 3年前

    可以尝试一下oracle的wm_contact()函数。

    点赞 评论 复制链接分享

相关推荐