2013-11-26 40 views
0

我真的不知道是否有任何源代碼會在這裏幫助...但是如何當我運行我的SQL查詢連接約70行後的每列返回爲「空」。這是我的查詢:在SQL中返回「空」拉

SELECT 
P_DATA.MATERIALID, 
T_GROUP_PROPERTIES.PROPERTYGROUPID, 
T_GROUP_PROPERTIES.PROPERTYTYPEID, 
T_GROUP_PROPERTIES.PROPERTYTYPEDESCRIPTION 

FROM 
P_DATA 

LEFT OUTER JOIN TEMPLATE_GROUP_PROPERTIES 
ON (P_DATA.MATERIALID = T_GROUP_PROPERTIES.PROPERTYGROUPID) 
OR (P_DATA.MATERIALID = T_GROUP_PROPERTIES.PROPERTYTYPEID) 
OR (CAST(P_DATA.MATERIALID AS CHAR(2000)) = T_GROUP_PROPERTIES.PROPERTYTYPEDESCRIPTION) 
+2

因爲你的表,'p_data',有一個或多個行,也充滿了'NULL'值。 –

+0

@GordonLinoff雖然是這樣的,但是'p_data'表中沒有空值,只有當它在sql查詢中返回時纔有它。 – bbesase

回答

2

這是外部連接,給你額外的空值。 所有來自P_DATA的行都將在結果中表示,即使它們在TEMPLATE_GROUP_PROPERTIES中沒有匹配的行。查詢在輸出中生成NULL以表示連接表中缺少匹配數據。

變化LEFT OUTER JOIN到INNER JOIN擺脫的NULL