其实这个比较简单,用oracle自带截取函数便可,oracle
select e.*, trim(f.f_id), f.leader, trim(f.leader_tele), trim(leader_handset), f.firm_type from ENTERPRISEINFO e left join JC_FIRM f on trim(f.f_id) = substr(e.id, 1, instr(e.id, '-') - 1) where 1 = 1 and (e.enterprise_name like '%番禺%' or e.code like '%番禺%' or e.contactor like '%番禺%') order by id asc
当时没注意到F_ID字段值有空格!!!,一直查不出数据,加个trim()去掉空格就行了!函数
而后 left join后面多个条件时,用where.... and....拼接查询条件,(以前直接在on后面 用 and 了,细节问题要注意)code
截取“-”后的子串: substr(
e.id
,instr(e.id
,
'-'
)+1,length(e.id
)-instr(e.id
,
'-'
))
blog