为了账号安全,请及时绑定邮箱和手机立即绑定

结果为啥顺序不一样,子查询的结果我也测试过了,挺正常啊。

SELECT T.CI_ID, WM_CONCAT(T.STU_NAME)
  FROM (SELECT S.STU_NAME, C.CI_ID, INSTR(C.STU_IDS, S.STU_ID)
          FROM PM_CI C, PM_STU S
         WHERE INSTR(C.STU_IDS, S.STU_ID) > 0) T
 GROUP BY T.CI_ID

https://img1.sycdn.imooc.com//5d1463780001a8de04540141.jpg


SELECT S.STU_NAME, C.CI_ID, INSTR(C.STU_IDS, S.STU_ID)

          FROM PM_CI C, PM_STU S

         WHERE INSTR(C.STU_IDS, S.STU_ID) > 0

子查询结果

https://img1.sycdn.imooc.com//5d1463da0001c7de04870212.jpg

正在回答

2 回答

select ci_id,MAX(M) from (

select ci_id,wm_concat(stu_name) over (partition by c.ci_id order by s.stu_id)m from pm_ci c,pm_stu s where instr(c.stu_ids,s.stu_id)>0)e group by e.ci_id;


0 回复 有任何疑惑可以回复我~

vm_concat()函数拼接得到的结果是乱序的,需要在给他排序,好像要借助

  SELECT  *    FROM  (SELECT  A.*,ROW_NUMBER()  OVER  (PARTITION  BY  根据去重字段  ORDER  BY  去重时的排序字段)  RN FROM  换成表名  A  )  WHERE  RN=1



0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

结果为啥顺序不一样,子查询的结果我也测试过了,挺正常啊。

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信