0

結合を除く権利を持つビューを作成しようとしています:

ここに画像の説明を入力

ただし、WHERE も実行したいコロンがあります。この場合、次のようになります。

WHERE table.colon != 'x';

そのため、私は試しました:

WHERE A.key IS NULL AND table.colon != 'x'; 

しかし、実行すると、実行時にデータが表示されません。誰でもこの問題で私を助けることができますか?

ありがとうございます。

更新、実行しようとしているクエリは次のとおりです。

SELECT     dbo.DimServere.Servernavn, dbo.DimServere.Serverstatus, dbo.IderaPatchAnalyzer.IP_Adresse, dbo.IderaPatchAnalyzer.Release_, dbo.IderaPatchAnalyzer.Level_, 
                      dbo.IderaPatchAnalyzer.Edition_, dbo.IderaPatchAnalyzer.Build, dbo.IderaPatchAnalyzer.Updates_Available, dbo.IderaPatchAnalyzer.Supported_, 
                      dbo.IderaPatchAnalyzer.Support_Status
FROM         dbo.DimServere RIGHT OUTER JOIN
                      dbo.IderaPatchAnalyzer ON dbo.DimServere.TcpIpAddress = dbo.IderaPatchAnalyzer.IP_Adresse AND dbo.DimServere.Serverstatus <> 'Disposed/Retired'
WHERE     (dbo.DimServere.TcpIpAddress IS NULL)
4

2 に答える 2

0

その考えは正しい。nullただし、列に値があると思いdbo.DimServere.Serverstatusます。比較演算子を使用しているため、この条件は常に失敗し (との比較nullは不明)、join条件が満たされず (AND別の条件を使用しているため)、結果が得られません。

これを克服するisnull(dbo.DimServere.Serverstatus, 'somevalue')には、条件で使用しjoinます。

SELECT dbo.DimServere.Servernavn, dbo.DimServere.Serverstatus,
dbo.IderaPatchAnalyzer.IP_Adresse, dbo.IderaPatchAnalyzer.Release_,
dbo.IderaPatchAnalyzer.Level_, dbo.IderaPatchAnalyzer.Edition_, 
dbo.IderaPatchAnalyzer.Build, dbo.IderaPatchAnalyzer.Updates_Available,    
dbo.IderaPatchAnalyzer.Supported_, dbo.IderaPatchAnalyzer.Support_Status
FROM dbo.DimServere RIGHT OUTER JOIN
dbo.IderaPatchAnalyzer ON dbo.DimServere.TcpIpAddress = dbo.IderaPatchAnalyzer.IP_Adresse 
AND isnull(dbo.DimServere.Serverstatus, 'somevalue') <> 'Disposed/Retired' 
WHERE dbo.DimServere.TcpIpAddress IS NULL
于 2015-11-18T01:03:14.090 に答える