1、实际需求情况如下:
http://img.dnbcw.info/2012413/3941000.png
描述:上述表中,某一位同学有多门课程和成绩,现在希望有一条SQL语句,将课程名称和成绩合并在一起显示,如下:
描述:将这位同学的全部课程和成绩用一个字段表示,里面包括全部的课程名称和考试成绩
2、问题分析
解决这个问题可以采用创建function的办法,去合并这2个字段,但这样太麻烦,由于是采用的Oracle10g,故可以采用函数wmsys.wm_concat()实现此功能。
3、解决方案
SQL:
第一步先写一个视图view_ly_sjdxpt_jwcj,合并这2个字段
SQL代码:
createorreplaceviewview_ly_sjdxpt_jwcj as
select
xh hm,
kcmc||zscj as kc_cj
from dcuser.ly_xs_bzks_cjb b;
结果:
第二步再写一个视图,使用wmsys.wm_concat()将KC_CJ字段合并
SQL代码:
createorreplaceviewview_ly_sjdxpt_jwcj_kz as
select hm,wmsys.wm_concat(kc_cj) as kccj from view_ly_sjdxpt_jwcj groupby hm;
结果:
第三步代入实际需要的sql中使用即可:
SQL代码:
select distinct
'教务成绩' dxlb,
xh hm,
(select lxdh fromdcuser.LY_XS_BZKS_XSJBXX where xh=b.xh) sjhm,
to_char(sysdate,'yyyyMMddHH24miss') crsj,
xm||'同学您好,这个学期您各科成绩如下:'||c.kccj as nr,
'' bz,
''fssj
fromdcuser.ly_xs_bzks_cjb b
leftouterjoin DCUSER_KZ.VIEW_LY_SJDXPT_JWCJ_KZ c on b.xh=c.hm
结果:
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com