首頁  >  問答  >  主體

在SQL中,如何在不使用CASE語句的情況下,將列的值賦值為null,當滿足條件A或條件B時使用嵌套的NULLIF函數

<p>我有一列C1,其值可以是'values'、'empty'或'N/A'。 </p> <pre class="brush:php;toolbar:false;">| C1 | ------- | | | N/A | |apple|</pre> <p>我想以一種方式選擇列C1,將空值和N/A轉換為NULL,使用NULLIF。 </p> <pre class="brush:php;toolbar:false;">| C1 | ------- |NULL | |NULL | |apple|</pre> <p>我們可以使用<code>NULLIF(C1, '')</code>,如果欄位值為空,則傳回NULL。 </p> <p>我們也可以使用CASE來實現這兩種情況,但我想知道是否有一種方法可以使用NULLIF來實現,如果有,如何實現? (或除了CASE之外的其他方法)</p> <p>類似<code>NULLIF(C1, '' OR 'N/A')</code></p> <p>提前感謝。 </p>
P粉310754094P粉310754094422 天前499

全部回覆(2)我來回復

  • P粉253800312

    P粉2538003122023-08-26 12:34:15

    使用case表達式:

    (case when c1 not in ('', 'N/A') then c1 end)

    回覆
    0
  • P粉925239921

    P粉9252399212023-08-26 00:26:44

    您可以使用巢狀的 NULLIF() 函數來實作:

    NULLIF(NULLIF(c1, ''), 'N/A')

    請參閱 演示

    回覆
    0
  • 取消回覆