在此SQL中,它只返回連接表 (subst_Instructions)的col中有數據的行。但是,即使連接中沒有數據,我們也希望它顯示主表中的行。現在,它的'因爲SUBST_INSTRUCTIONS不是空的。 但沒有,它不會顯示該列的數據。有什麼方法可以說SUBST_INSTRUCTIONS不是null和null?sql查詢只顯示在連接中有匹配的行
SELECT * FROM
(
SELECT ID_KEY, [BATCH] AS column1, [IMPORTDATE], [DATEBILLED], [RX],
[DATEDISPENSED], [DAYSUPPLY], [PAYTYPE], [NPI],
[PHYSICIAN], [COST], [QUANTITY], [MEDICATION], A.[NDC], [PATIENTNAME],
[ROUTEOFADMIN], [INVOICECAT], [COPAY], [BRAND], [TIER], [SKILLLEVEL],
[STAT] STATUS, [LASTTASKDATE],SEQNO,B.[SUBST_INSTRUCTIONS],
ROW_NUMBER() OVER(PARTITION BY ID_KEY ORDER BY ID_KEY) rn
FROM [PBM].[T_CHARGES] A
LEFT OUTER JOIN [OGEN].[NDC_M_FORMULARY] B
ON A.[NDC] = B.[NDC]
WHERE [STAT] NOT IN (3, 4)
AND [TIER] <> 'T1'
) a
WHERE SUBST_INSTRUCTIONS IS NOT NULL -- rn = 1
什麼是外部選擇?當您直接應用WHERE SUBST_INSTRUCTIONS不爲NULL時,結果應該是相同的。 (順便說一句:SUBST_INSTRUCTIONS是表PBM的一個領域,對嗎?在每個領域都有一個限定符A或B會很有幫助。) –
嗨亞當斯,不知何故,你混淆了事物。以任何方式,你不需要WHERE SUBST_INSTRUCTIONS不是NULL。要麼顯示PBM的所有記錄,並顯示BST_INSTRUCTIONS(如果有),請使用外部聯接。或者您只想顯示具有BST_INSTRUCTIONS的PBM記錄,然後使用內部聯接。子句WHERE SUBST_INSTRUCTIONS不是NULL只會有效地使你的外連接成爲一個內連接。 –
我明白了,但這是它工作的唯一途徑。如果我刪除最後一部分,那麼我們只是得到愚蠢。 – Adams