SQL:select  distinct sys_guid(),12,'K',t.parent_cat_id,sysdate,sysdate from wap_category1 t 
                        where t.cat_id in 
                       ((select cat_id from wap_ssrv_servicecatgroup_map1 where serviceindex = 1))  当distinct和 函数 sys_guid() 在一起的时候,查询结果如下:1 52E623097A2AC3D6E040280ABA987A06 12 K 100 2008-7-26 11:59:10 2008-7-26 11:59:10
2 52E623097A2BC3D6E040280ABA987A06 12 K 200 2008-7-26 11:59:10 2008-7-26 11:59:10
3 52E623097A2CC3D6E040280ABA987A06 12 K 100 2008-7-26 11:59:10 2008-7-26 11:59:10但我想要的结果是:(将两个100的情况只做一个100来处理,想distinct过滤重复的100)1 52E623097A2AC3D6E040280ABA987A06 12 K 100 2008-7-26 11:59:10 2008-7-26 11:59:10
2 52E623097A2BC3D6E040280ABA987A06 12 K 200 2008-7-26 11:59:10 2008-7-26 11:59:10但是上面的SQL语句,做不到,还请高手看看,该怎么办?谢谢了!

解决方案 »

  1.   

    select   sys_guid(),12,'K',distinct(t.parent_cat_id),sysdate,sysdate from wap_category1 t 
                            where t.cat_id in 
                          ((select cat_id from wap_ssrv_servicecatgroup_map1 where serviceindex = 1))試試   
      

  2.   

    不行哦,提示 ORA-00936缺少表达式
      

  3.   

    SELECT SYS_GUID(), X.*
      FROM (SELECT DISTINCT 12, 'K', T.PARENT_CAT_ID, SYSDATE, SYSDATE
              FROM WAP_CATEGORY1 T
             WHERE T.CAT_ID IN ((SELECT CAT_ID
                                   FROM WAP_SSRV_SERVICECATGROUP_MAP1
                                  WHERE SERVICEINDEX = 1))) X;
      

  4.   

    我执行:
    SELECT SYS_GUID(), X.*
      FROM (SELECT DISTINCT 12, 'K', T.PARENT_CAT_ID, SYSDATE, SYSDATE
              FROM WAP_CATEGORY1 T
             WHERE T.CAT_ID IN ((SELECT CAT_ID
                                   FROM WAP_SSRV_SERVICECATGROUP_MAP1
                                  WHERE SERVICEINDEX = 1))) X;
    的时候,还是会提示 “ORA-00918:未明确定义列”
    望能再指点一下,谢了!兄弟!
      

  5.   

    SELECT SYS_GUID(), X.*
      FROM (SELECT DISTINCT 12 C1,
                            'K' C2,
                            T.PARENT_CAT_ID,
                            SYSDATE C3,
                            SYSDATE C4
              FROM WAP_CATEGORY1 T
             WHERE T.CAT_ID IN ((SELECT CAT_ID
                                   FROM WAP_SSRV_SERVICECATGROUP_MAP1
                                  WHERE SERVICEINDEX = 1))) X;
      

  6.   

    好了!非常感谢兄弟们,尤其是oracledbalgtu ,你的答案帮我解决了一个难题!
    谢谢!:)
    希望以后有机会大家再交流,相互学习!