代码之家  ›  专栏  ›  技术社区  ›  mon

Oracle SQL如何去哪里(A和B)

  •  1
  • mon  · 技术社区  · 2 年前

    有没有办法用甲骨文写不(a和B)?

    WITH intermediate AS (
        SELECT
            TO_DATE(start_date, 'YYYY-MM-DD') start_date,
            TO_DATE(end_date, 'YYYY-MM-DD') end_date,
            TO_DATE(start_date, 'YYYY-MM-DD') - LAG(TO_DATE(start_date, 'YYYY-MM-DD')) OVER (ORDER BY Start_Date) SLAG,
            LEAD(TO_DATE(end_date, 'YYYY-MM-DD'))OVER (ORDER BY Start_Date) - TO_DATE(end_date, 'YYYY-MM-DD') ELEAD
        FROM
            Projects
        ORDER BY 
            start_date
    )
    SELECT * 
    FROM 
        intermediate i
    WHERE 
        NOT (i.SLAG == 1 AND i.ELEAD == 1)
    ;
    

    非(i.laff==1和i.ELEAD==1) *
    第16行出错:
    ORA-00936:表达缺失

    2 回复  |  直到 2 年前
        1
  •  1
  •   D-Shih    2 年前

    它应该只有一个相等,而不是两个相等

    NOT (i.SLAG = 1 AND i.ELEAD = 1)
    
        2
  •  0
  •   a801a28cb4b6e70a    2 年前

    你也可以不用担心 NOT 在前面,这样:

    AND (i.SLAG <> 1 OR i.ELEAD <> 1)
    

    或者这样:

    AND (i.SLAG != 1 OR i.ELEAD != 1)