在SQL中,如何在不使用CASE语句的情况下,将列的值赋值为null,当满足条件A或条件B时使用嵌套的NULLIF函数
P粉310754094
P粉310754094 2023-08-25 13:26:01
[MySQL讨论组]

我有一列C1,其值可以是'values'、'empty'或'N/A'。

|  C1 |
-------
|     |
| N/A |
|apple|

我想以一种方式选择列C1,将空值和N/A转换为NULL,使用NULLIF。

|  C1 |
-------
|NULL |
|NULL |
|apple|

我们可以使用NULLIF(C1, ''),如果列值为空,则返回NULL。

我们也可以使用CASE实现这两种情况,但我想知道是否有一种方法可以使用NULLIF来实现,如果有,如何实现?(或者除了CASE之外的其他方法)

类似于NULLIF(C1, '' OR 'N/A')

提前感谢。

P粉310754094
P粉310754094

全部回复(2)
P粉253800312

使用case表达式:

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

您可以使用嵌套的 NULLIF() 函数来实现:

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

请参见 演示

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号