我正在尝试为c.GUIDELINE_TEXT显示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')
编辑:数据的一个例子。
预期的结果是它也会从GUIDELINE_TEXT的空白列中提取数据,并希望得到它将拉出所有order_no而不是只有那些在GUIDELINE_TEXT列中有文本的行。
答案 0 :(得分: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允许您使用字符串替换null(作为空白返回)”。
COALESCE从列表here返回第一个非空值。如果您有多个可能或可能不为null的值,则Coalesce可能很难使用。如果您的可能值集可以按非空值的可能性排列,或者您确定表达式中的所有值都相同,则非常有用。