1

ユーザーに関する情報を取得するクエリがあります。ユーザーは、電話番号をまったく持っていない場合もあれば、1 つまたは複数の電話番号を持っている場合もあります。私がやろうとしているのは、ユーザーの最新の電話番号 (seq 番号によって決定される) を、他の基本的な人口統計データを含むクエリに結合することです。私が直面している問題は、サブクエリが null を返す場合、ユーザーがクエリに表示されないことです。これらの行が引き続き返されるように、サブクエリで null を処理するにはどうすればよいですか?

SELECT  SPRIDEN.SPRIDEN_ID AS Student_ID ,
        saradap.SARADAP_APST_CODE ,
        saradap.SARADAP_PIDM ,
        spriden.spriden_first_name ,
        spriden.spriden_last_name ,
        saradap.saradap_program_1 ,
        spraddr.SPRADDR_STREET_LINE1 ,
        spraddr.spraddr_city ,
        spraddr.spraddr_zip ,
        spraddr.spraddr_stat_code ,
        saradap.SARADAP_APPL_DATE ,
        'Individual' AS Account_Name ,
        saradap.SARADAP_CAMP_CODE ,
        CONCAT(sprtele_phone_area, sprtele_phone_number) "Phone" ,
        sprtele_tele_code ,
        sorcont_ctyp_code ,
        sorcont_contact_date ,
        sorcont.sorcont_activity_date
FROM    saradap
        LEFT JOIN spriden ON saradap.saradap_pidm = spriden_pidm
        LEFT JOIN spraddr ON saradap.saradap_pidm = spraddr.spraddr_pidm
        LEFT  JOIN sprtele ON saradap.saradap_pidm = sprtele.sprtele_pidm
        LEFT JOIN sorcont ON saradap.saradap_pidm = sorcont.sorcont_pidm
WHERE   spriden.spriden_change_ind IS NULL
        AND ( saradap.SARADAP_CAMP_CODE = 'D'
              OR saradap.SARADAP_CAMP_CODE = 'JD'
            )
        AND saradap.saradap_appl_date > SYSDATE - 15
        AND spraddr.spraddr_seqno = ( SELECT    MAX(spraddr.spraddr_seqno)
                                      FROM      spraddr
                                      WHERE     saradap.SARADAP_PIDM = spraddr.spraddr_pidm
                                    )
        AND sprtele_seqno = ( SELECT    MAX(SPRTELE_SEQNO)
                              FROM      SATURN.SPRTELE
                              WHERE     sprtele_pidm = saradap.saradap_pidm
                            )
4

3 に答える 3