当我使用如下语句的时候没有任何问题,可以查询出2条数据
SELECT
dd_isShare,
'aaa' ledger_id,
'FK01' coa_type_code
from v_cem_voucher_detail
where md_id = 'BI2017120700072938'
and (instr('@(N)', '@(' || dd_isShare || ')') > 0 AND
instr('@(SY2017090700059015)', '@(' || dd_invoiceType || ')') = 0)
但是当我使用如下语句:
SELECT
--dd_isShare,
'aaa' ledger_id,
'FK01' coa_type_code
from v_cem_voucher_detail
where md_id = 'BI2017120700072938'
and (instr('@(N)', '@(' || dd_isShare || ')') > 0 AND
instr('@(SY2017090700059015)', '@(' || dd_invoiceType || ')') = 0)
把dd_isShare和dd_invoiceType中2个字段在select注释掉,就查询不到任何数据,v_cem_voucher_detail 是一个视图,而且该情况在生产上出现,测试服务器上没有问题,个人觉得很奇怪,已经排除是语句或者视图的问题,剩下的不知道还有什么情况?
其中dd_isShare 是一个子查询的转换(decode((select count(1) from t_aaa_es es where d.no = es.connno and d.mainid = es.mainid and d.corpid = d.corpid),0,'N','Y')) dd_isShare,
求解答