首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在SQL中用'N/A‘替换空值?

如何在SQL中用'N/A‘替换空值?
EN

Stack Overflow用户
提问于 2022-11-06 10:14:22
回答 2查看 72关注 0票数 -1

我希望用'N/A‘替换SQL JOIN语句产生的NULL值。我尝试将两个表中两个相关列的默认值设置为N/A,但是每次执行SQL语句时,仍然会收到NULL值。

我拥有的两个表是客户机和Medical_Aid表,我使用一个名为Reg_No的外键连接了这两个表。下面是我的sql查询

代码语言:javascript
复制
SELECT
    clients.Id_Number,
    clients.Medical_No,
    medical_aid.Name AS Medical_Aid,
    clients.First_Name,
    clients.Last_Name,
    clients.Age,
    clients.Gender,
    clients.Email,
    clients.Telephone
FROM
    clients
    LEFT OUTER JOIN medical_aid ON clients.Reg_No = medical_aid.Reg_No;

我尝试将Medical_No和Medical_Name的默认值设置为'N/A',但每次执行JOIN语句时,只在Medical_Name列上返回空值。

因此,我期望JOIN语句返回Medical_Nomedical_AidNamemedical_AidName

EN

回答 2

Stack Overflow用户

发布于 2022-11-06 10:25:36

代码语言:javascript
复制
SELECT
    clients.Id_Number,
    ISNULL(clients.Medical_No,'N/A'),
    ISNULL(medical_aid.Name, 'N/A') AS Medical_Aid,
    clients.First_Name,
    clients.Last_Name,
    clients.Age,
    clients.Gender,
    clients.Email,
    clients.Telephone
FROM
    clients
    LEFT OUTER JOIN medical_aid ON clients.Reg_No = medical_aid.Reg_No;
票数 -1
EN

Stack Overflow用户

发布于 2022-11-06 10:33:58

对于来自medial_aid表的值,可以使用IsNull()函数用不同的值替换NULL:

代码语言:javascript
复制
IsNull(medical_aid.Name, 'N/A') AS Medical_Aid

如果还想在medical_aid表中找不到记录时也替换客户端表中的另一个字段,则可能需要使用案例语句:

代码语言:javascript
复制
CASE WHEN medical_aid.Reg_No is null THEN 'N/A' else clients.Medical_No END AS Medical_No

这条语句说,当medical_aid.Reg_No为NULL时(因为没有从medical_aid找到的连接到客户端表的记录),那么输出'N/A',否则输出clients.Medical_No。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74334895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档