【问题标题】:DB Query related to get data from 2 tables which are not null与从 2 个不为空的表中获取数据相关的数据库查询
【发布时间】:2017-12-01 11:38:48
【问题描述】:
select FCPDD.AUDIENCE_ID,FCPD.APPLICATION_RULE_ID,FCPD.PROGRAMME_PART,FCPD.TARGET_DATE,FCPD.TIMEBAND_START_TIME,
FCPD.TIMEBAND_END_TIME,FCPD.DAY_NUMBER
FROM FPR_CHANNEL_PROCESS_DATA FCPD,FPR_CHANNEL_PROCESS_DATA_DTL FCPDD 
WHERE FCPD.CHANNEL_PROCESS_DATA_ID=FCPDD.CHANNEL_PROCESS_DATA_ID and FCPD.TARGET_DATE is not null and FCPDD.AUDIENCE_ID is not null 
and FCPD.APPLICATION_RULE_ID is not null and FCPD.PROGRAMME_PART is not null and FCPD.TIMEBAND_START_TIME is not null
and FCPD.TIMEBAND_END_TIME is not null and FCPD.DAY_NUMBER is not null 

我们可以把上面的查询写成精确的形式吗

【问题讨论】:

    标签: sql oracle performance


    【解决方案1】:

    参考链接: Using IS NOT NULL for multiple columns

    试试这个,

    SELECT FCPDD.AUDIENCE_ID,FCPD.APPLICATION_RULE_ID,FCPD.PROGRAMME_PART,FCPD.TARGET_DATE,FCPD.TIMEBAND_START_TIME,
    FCPD.TIMEBAND_END_TIME,FCPD.DAY_NUMBER
    FROM FPR_CHANNEL_PROCESS_DATA FCPD,FPR_CHANNEL_PROCESS_DATA_DTL FCPDD 
    WHERE FCPD.CHANNEL_PROCESS_DATA_ID=FCPDD.CHANNEL_PROCESS_DATA_ID AND 
    NOT(FCPD.TARGET_DATE IS NULL 
    OR FCPDD.AUDIENCE_ID IS NULL 
    OR FCPD.APPLICATION_RULE_ID IS NULL 
    OR FCPD.PROGRAMME_PART IS NULL 
    OR FCPD.TIMEBAND_START_TIME IS NULL
    OR FCPD.TIMEBAND_END_TIME IS NULL 
    OR FCPD.DAY_NUMBER IS NULL )
    

    试试这个:

    SELECT FCPDD.AUDIENCE_ID,FCPD.APPLICATION_RULE_ID,FCPD.PROGRAMME_PART,FCPD.TARGET_DATE,FCPD.TIMEBAND_START_TIME,
    FCPD.TIMEBAND_END_TIME,FCPD.DAY_NUMBER
    FROM FPR_CHANNEL_PROCESS_DATA FCPD,FPR_CHANNEL_PROCESS_DATA_DTL FCPDD 
    WHERE (FCPD.CHANNEL_PROCESS_DATA_ID=FCPDD.CHANNEL_PROCESS_DATA_ID AND 
    NOT(FCPD.TARGET_DATE IS NULL 
    OR FCPDD.AUDIENCE_ID IS NULL 
    OR FCPD.APPLICATION_RULE_ID IS NULL 
    OR FCPD.PROGRAMME_PART IS NULL 
    OR FCPD.TIMEBAND_START_TIME IS NULL
    OR FCPD.TIMEBAND_END_TIME IS NULL 
    OR FCPD.DAY_NUMBER IS NULL ))
    

    【讨论】:

    • 错误如下:ORA-00907:缺少右括号 00907. 00000 -“缺少右括号” *原因:*操作:第 9 列错误:22
    • remove 结尾不为空,添加在 where 子句之后和条件中
    猜你喜欢
    • 2016-01-01
    • 2014-07-29
    • 1970-01-01
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 2014-02-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多