我有这个查询
SELECT DAL_ROWNOTABLE.DAL_ID FROM ( SELECT ticket.id AS "DAL_ID", ROWNUMBER ( Order By ticket.id ) AS "DAL_ROWNUMBER" FROM ticket_table ticket WHERE ( ticket.type = N'I' ) AND ( ticket.tenant IS NULL OR ticket.tenant IN ( SELECT * FROM ( SELECT tenant_group_member.tenant_id FROM tenant_group_member WHERE tenant_group_member.tenant_group = HEXTORAW('30B0716FEB5F4E4BB82A7B7AA3A1A42C') ORDER BY ticket.id ) ) ) ) DAL_ROWNOTABLE WHERE DAL_ROWNOTABLE.DAL_ROWNUMBER BETWEEN 1 AND 21
引发ORA-00936缺少表达式的allow查询有什么问题?任何人?任何帮助将不胜感激…在第一个顺序的开头处,列:80处引发错误:
您的查询可以大大简化。它具有诸如子查询的额外层和order by在in子查询中不必要的东西。您想做什么就rownumber可以rownum:
order by
in
rownumber
rownum
SELECT DAL_ROWNOTABLE.DAL_ID FROM (SELECT ticket.id AS "DAL_ID" FROM ticket_table ticket WHERE (ticket.type = N'I' ) AND (ticket.tenant IS NULL OR ticket.tenant IN (SELECT tgm.tenant_id FROM tenant_group_member tgm WHERE tgm.tenant_group = HEXTORAW('30B0716FEB5F4E4BB82A7B7AA3A1A42C') ) ) ORDER BY ticket.id ) DAL_ROWNOTABLE WHERE rownum <= 21;