首页  >  问答  >  正文

在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 天前497

全部回复(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
  • 取消回复