qq_42587437 2018-12-03 03:15 采纳率: 0%
浏览 4433

老是提示ORA-00936: 缺失表达式,找不出问题,麻烦各位大神给看看

select t1.name,ROUND(NVL(t2.SCORE,0),2) SCORE from(
select * from sys_area_b where parent_id='440100000000') t1
left join (
select u.addvcd_area,avg(a.score)+60 SCORE from USER_SCORE_B_187 a
left join sys_user_b u on u.id=a.user_id

where u.river_type in(${riverType})
<![CDATA[and to_date(to_char(a.create_Date,'yyyy-mm-dd'),'yyyy-mm-dd') >= to_date(#{strTm},'YYYY-MM-DD')
and to_date(to_char(a.create_Date,'yyyy-mm-dd'),'yyyy-mm-dd') < to_date(#{endTm},'YYYY-MM-DD')
]]>
and a.user_id in (
select a.id from sys_user_b a
left join rm_riverchief_section_r section on section.user_id=a.id
left join rm_river_lake lake on lake.id=section.river_section_id
where section.del_flags='0' and a.del_flag='0' and a.IS_RIVERCHIEF='Y'

and lake.IS_HC152 is not null


and lake.IS_HC35 is not null

)
group by u.addvcd_area
)t2 on t1.id=t2.addvcd_area
order by ROUND(NVL(t2.SCORE,0),2) desc

  • 写回答

1条回答 默认 最新

  • lshen01 2023-03-15 18:34
    关注

    参考GPT和自己的思路:

    这个问题的错误提示ORA-00936: 缺失表达式通常是由于SQL语法错误引起的。可以尝试检查SQL语句中的括号、逗号、引号等符号是否匹配正确,还要检查查询语句中的别名和函数的正确性。根据你提供的SQL语句,有可能是以下原因导致错误提示:

    • 子查询中的某个语句缺失表达式或存在语法错误,可能会导致整个SQL语句执行出错。需要仔细检查子查询中各个语句的语法正确性,特别是关键字是否正确,拼写是否正确,句法是否完整等。
    • 查询语句中可能存在语义上的逻辑错误,例如在LEFT JOIN等连接操作中表达式不完整、条件缺失或括号不匹配等问题。需要重新检查查询逻辑和条件,确保逻辑正确性和表达式完整性。
    • 对于变量的使用也需要考虑,例如这个语句中的${riverType}和#{strTm}、#{endTm}是变量,需要检查它们是否正确地被初始化或替换为具体的数值或字符串值。

    综上所述,建议逐行检查SQL语句并仔细化解错误提示的具体异常信息,找到语法或逻辑上的问题,以寻找正确的答案。

    评论

报告相同问题?

悬赏问题

  • ¥15 我想在一个软件里添加一个优惠弹窗,应该怎么写代码
  • ¥15 fluent的在模拟压强时使用希望得到一些建议
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流