为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】: dm7
【操作系统】:window10
【CPU】: r7-5800h
【问题描述】*:
如下,[LIKE]附近出现错误,mysql运行正常,请问dm与mysql的like用法区别在哪
select *
from fmc_filesharing_doc t
left join jr_auth_fuelmc.security_busi_org s on s.org_id = t.ORG_ID and busi_id = 1
where (if(t.is_up_look = ‘1’, s.LAYER_ORDER LIKE CONCAT(left(‘00000400004’,4),‘%’), s.LAYER_ORDER = ‘1’))
您看一下,我改写的sql是否满足您的需求:
select
*
from
fmc_filesharing_doc t
left join security_busi_org s
on
s.org_id = t.ORG_ID
and busi_id = 1
where
(
t.is_up_look = ‘1’
and s.LAYER_ORDER LIKE CONCAT(left(‘00000400004’, 4), ‘%’)
)
or
(
t.is_up_look <> ‘1’
and s.LAYER_ORDER = ‘1’
)
您好,在mysql中if表达式作为三元运算符,对于的在达梦中可以使用decode函数来实现,建议您参考搜索 ‘decode作为where条件’ 的用法修改sql条件,尝试解决此问题。
把涉及的表的表结构发出来一下