【问题标题】:ORA-00936: missing expression Java SQL ExceptionORA-00936: 缺少表达式 Java SQL 异常
【发布时间】:2018-04-05 06:46:23
【问题描述】:

几个小时以来,我一直试图找出这个语句中的错误,但似乎找不到。

它必须与连接两个 WHERE 的 AND 有关,因为在删除第一个 WHERE 时它起作用了:

SELECT  E_AUFMASS_KOMMENTARE.FIBU_FIRMA, 
        E_AUFMASS_KOMMENTARE.AUFTR_NR, 
        E_AUFMASS_KOMMENTARE.KOMMENTAR, 
        AUFTR_EXT.ART_GRUPPE 
        FROM HHNG_AU.E_AUFMASS_KOMMENTARE 
        INNER JOIN HHNG_AU.AUFTR_EXT ON E_AUFMASS_KOMMENTARE.AUFTR_NR = AUFTR_EXT.AUFTR_NR 
        WHERE (E_AUFMASS_KOMMENTARE.AUFTR_NR = '1248823' ) 
        AND WHERE NOT EXISTS( SELECT * FROM HHNG_AU.EX_KOMMENTARE WHERE EX_KOMMENTARE.AUFTR_NR = '1248823' )

【问题讨论】:

  • 这与java无关。鉴于我们不知道您要做什么,猜测是我们能做的就差不多了
  • AND WHERE 应该是 AND SELECT 语句中只能有 一个 WHERE 子句
  • 非常感谢。这让我开始发疯了。
  • 为什么这会得到 4 票反对?!我发布了我收到的错误并描述了问题所在(我无法让 SQL 语句正常工作)@ 4 Downvoters:我应该写一篇 5 页的文章来讨论你这些愚蠢的白痴还是你的问题?

标签: sql oracle


【解决方案1】:

WHERE 太多。你只需要where一次,然后使用ANDs和ORs组合条件:

SELECT E_AUFMASS_KOMMENTARE.FIBU_FIRMA, E_AUFMASS_KOMMENTARE.AUFTR_NR, E_AUFMASS_KOMMENTARE.KOMMENTAR, AUFTR_EXT.ART_GRUPPE FROM HHNG_AU.E_AUFMASS_KOMMENTARE INNER JOIN HHNG_AU.AUFTR_EXT ON E_AUFMASS_KOMMENTARE.AUFTR_NR = AUFTR_EXT.AUFTR_NR WHERE (E_AUFMASS_KOMMENTARE.AUFTR_NR = '1248823' ) AND NOT EXISTS( SELECT * FROM HHNG_AU.EX_KOMMENTARE WHERE EX_KOMMENTARE.AUFTR_NR = '1248823' )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多