2016-02-01 30 views
0

我想爲c.GUIDELINE_TEXT顯示NULL值和NOT NULL值。我看過一些例子,但我不知道該把它放在哪裏。當我使用此代碼時:在查詢中返回NULL和NOT NULL值

WHERE c.GUIDELINE_TEXT is NULL 

我沒有得到任何返回值。我還沒有試過COALESCE,因爲我不太確定那是什麼或將它放在我的代碼中。我知道GUIDELINE_TEXT確實有空值。我知道我可能會犯一些新手的錯誤,所以如果有人能指出我會朝好的方向發展。謝謝。

SELECT 
    a.ORDER_NO, 
    a.RELEASE_NO, 
    a.SEQUENCE_NO, 
    b.C_OPERATION_SEQUENCE as OP_SEQ, 
    b.OPERATION_NO, 
    b.OP_ID, 
    c.GUIDELINE_TEXT 
FROM 
    ifsapp.SHOP_ORD a, 
    ifsapp.SHOP_ORDER_OPERATION b, 
    ifsapp.SHOP_ORD_WORK_GUIDE c 
WHERE 
    a.ORDER_NO = b.ORDER_NO 
    AND b.ORDER_NO = c.ORDER_NO 
    AND a.RELEASE_NO = b.RELEASE_NO 
    AND b.RELEASE_NO = c.RELEASE_NO 
    AND a.SEQUENCE_NO=b.SEQUENCE_NO 
    AND b.SEQUENCE_NO = c.SEQUENCE_NO 
    AND b.OPERATION_NO = c.OPERATION_NO 
    AND a.ORDER_NO = ('&Ord') 
    AND a.RELEASE_NO = ('&Rel') 
    AND a.SEQUENCE_NO = ('&Seq') 

編輯:數據的一個例子。

Example

預期的結果將是,它拉的數據也從GUIDELINE_TEXT的空白欄與希望的結果,它將把所有order_no,而不只是那些在GUIDELINE_TEXT列有文字。

+0

您使用的是Oracle還是MS SQL Server?請不要標記不涉及的產品... – jarlh

+0

您可以添加一些示例表格數據和預期結果嗎? – jarlh

+0

模式名稱是IFS,它運行在Oracle – kevinsky

回答

1

沒有看到樣本數據本應顯示爲空的存在值

SELECT 
a.ORDER_NO, 
a.RELEASE_NO, 
a.SEQUENCE_NO, 
b.C_OPERATION_SEQUENCE as OP_SEQ, 
b.OPERATION_NO, 
b.OP_ID, 
NVL(c.GUIDELINE_TEXT,'Nothing to see, move along') AS GUIDELINE_TEXT 

the documentation「NVL讓您更換一個空字符串(返回爲空白)」。

COALESCE從描述爲here的列表返回第一個非空值。如果您有多個可能或不可能爲空的值,那麼使用合併可能會非常棘手。如果你的一組可能的值可以按照非空值的可能性排列,或者你確信表達式中的所有值都是相同的,那麼它是非常有用的。

+0

如果你會那麼友好,你能向我解釋一下NVL的含義以及爲什麼在SELECT序列中顯示NULL值有效嗎?我只在WHERE語句中看到空值代碼。 – ajax

+0

非常感謝您解釋這一點。 – ajax