簡體   English   中英

過濾時不明確的列名“已刪除”

[英]Ambiguous column name 'DELETED' when filtering

早上好。

不用多說,我將加入兩個表,每個表都包含一行具有相同名稱的字段已刪除。 我能夠加入兩個表並獲得結果,問題是當我嘗試過濾掉那些被刪除的“X”而不是“NULL”的訂單時,我得到了不明確的列名。

SELECT

OCRI.DDORD#,
OCRH.DCBCUS,
OCRI.DELETED

from ocri
join OCRH on DCORD# = DDORD#    
where OCRI.dditst <> 'C'
and DELETED <> 'X'

我已經嘗試過 OCRI.DELETED <> 'X' 但我沒有得到任何結果。

我希望能夠過濾掉 X

DDORD#  DCBCUS     DELETED
194991  150482      NULL
195000  263609      X
195381  263609      X
195387  246045      NULL
195724  146551      NULL

限定查詢中的所有列引用。 您沒有提供足夠的信息來了解哪些列屬於哪里。

然后,您需要處理NULL值。

一個例子:

SELECT rh.DDORD#, ri.DCBCUS, ri.DELETED
FROM ocri ri JOIN
     OCRH rh
     ON ri.DCORD# = rh.DDORD#    
WHERE rh.rhdditst <> 'C' AND
      (ri.DELETED <> 'X' OR ri.DELETED IS NULL);

當然,我不知道表格是什么樣子的,所以資格可能是錯誤的。

請注意,標准 SQL 具有NULL比較,某些數據庫支持該比較。 這看起來像:

WHERE rh.rhdditst <> 'C' AND
      ri.DELETED IS DISTINCT FROM 'X';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM