sql子查询中的问题

java世界web而生 2016-05-26 02:53:00
select A.CLASSNAME,A.ENROLDATE,A.GRADUATEDATE,A.SPECIALITYNAME,B.DEPNAME,a.RATINGSUM,c.num,f.num2 from

XJ_CLASSES a ,FW_DEPARTMENT b,(select classid, count(classid)as num from xj_student group by classid) c,fw_codelist d,

(select classid, count(classid)as num2 from xj_student group by classid)f WHERE

a.TRAINLEVEL=D.CODEVALUE

and D.CODELABEL='士官职业技术教育'

and c.classid(+)=a.classid

and A.SPECIALITYNAME='电气自动化'

and A.DEPID=b.DEPID(+)

and A.ENROLDATE like '%16%'

and f.classid(+)=A.CLASSID;
-------------------------------------------------------------------------------------------------------------------------------------------------
以上sql中:and c.classid(+)=a.classid 和 and A.ENROLDATE like '%16%'

and f.classid(+)=A.CLASSID; 这些写法能不能讲解下,‘%16%’是什么意思

...全文
85 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
caiyuong
引用 2 楼 kl003196202 的回复:
A.ENROLDATE like '%16%'表示A表中ENROLDATE 字段中包含16的就查询出来,也是相当于一个限制条件,可以理解为相似查询,加两个百分号表示左右匹配,只要字段中包含16就符合条件; and c.classid(+)=a.classid ,and f.classid(+)=A.CLASSID; 属于左连接,A表为主表,c,f表就匹配表,当c,f表中的classid没有,而a表中有的时候,根据查询出来c,f表选取的字段为空显示出来。不用左连接时,数据就整条不会呈现.
原味紅豆 2016-05-26
  • 打赏
  • 举报
回复
A.ENROLDATE like '%16%'表示A表中ENROLDATE 字段中包含16的就查询出来,也是相当于一个限制条件,可以理解为相似查询,加两个百分号表示左右匹配,只要字段中包含16就符合条件; and c.classid(+)=a.classid ,and f.classid(+)=A.CLASSID; 属于左连接,A表为主表,c,f表就匹配表,当c,f表中的classid没有,而a表中有的时候,根据查询出来c,f表选取的字段为空显示出来。不用左连接时,数据就整条不会呈现.
ghx287524027 2016-05-26
  • 打赏
  • 举报
回复
A.ENROLDATE like '%16%'表示ENROLDATE 字段中包含16的; f.classid(+)=A.CLASSID;这个是左连接

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧