加入收藏 | 设为首页 | 会员中心 | 我要投稿 孝感站长网 (https://www.0712zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – ORA-00936:缺少表达式oracle

发布时间:2021-02-04 11:21:28 所属栏目:MsSql教程 来源:网络整理
导读:我有这个问题 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

我有这个问题

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缺少表达式的问题是什么?任何人?任何帮助将不胜感激…错误抛出列:80是在第一个订单的开头:

解决方法

您的查询可以大大简化.它具有额外的子查询层和子查询中不必要的顺序.你想用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;

(编辑:孝感站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读