ORA-00936:缺少表达式 - oracle

时间:2017-04-05 12:33:58

标签: sql oracle

虽然我在Stackoverflow中找到了一些相关的问题:

ORA-00936: missing expression oracle

ORA-00936: missing expression Oracle Apex

但那些不适合我的问题:

(SELECT t_1.oi1name OI1NAME 
FROM ( select oi1.name oi1name, oi.name oname, b.prodesc, b.foundtime, b.occurrencetime, b.divisionproject, b.pilenumber, b.constructionteam, b.progress, h.pk_group 
from zspm_qa_monthlyreport_b b 
left outer join zspm_qa_monthlyreport_h h on b.pk_monthlyreport_h = h.pk_monthlyreport_h 
left outer join org_itemorg oi on oi.pk_itemorg = h.pk_org 
left outer join org_itemorg oi1 on oi1.pk_itemorg = oi.pk_fatherorg 
where h.dr = 0 and h.billstatus = 1 and b.dr = 0 
and oi.code like CONCAT ( ( select code from org_itemorg where pk_itemorg in () ), '%' ) and h.def1 = '2016-01' ) t_1 
WHERE t_1.pk_group = '0001A2100000000007QL')

这是我查询的sql代码,但我不知道问题出在哪里。

1 个答案:

答案 0 :(得分:0)

in列表为空。我不认为这是允许的。

更重要的是,您可能打算采用这种逻辑:

where . . . and
      exists (select 1
              from org_itemorg oio
              where pk_itemorg in (. . .) and
                    oi.code like oio.code || '%'
             ) and
      h.def1 = '2016-01'

您的子查询可以返回多行,这在运行查询时会出现问题。