首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ORA-00936:缺少表达式oracle

ORA-00936:缺少表达式oracle
EN

Stack Overflow用户
提问于 2014-03-23 03:00:24
回答 2查看 15.3K关注 0票数 2

我有这个问题

代码语言:javascript
复制
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查询有什么问题?有没有人?任何帮助都将在first order by的开头的appreciated...Error :80处抛出:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-23 03:34:53

您的查询可以大大简化。它有额外的子查询层和in子查询中不必要的order by。只需使用rownum即可实现rownumber的功能

代码语言:javascript
复制
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;
票数 0
EN

Stack Overflow用户

发布于 2014-03-23 03:08:20

ORA-00936通常表示存在语法错误。

ROWNUMBER不是一个Oracle函数。除非您有一个同名的用户定义函数,否则我怀疑您要查找的函数是ROW_NUMBER()

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22582103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档