两个表连接时如何检查字段是不是为空

Posted

技术标签:

【中文标题】两个表连接时如何检查字段是不是为空【英文标题】:How to check if Field is null when two tables joins两个表连接时如何检查字段是否为空 【发布时间】:2020-11-07 07:18:41 【问题描述】:

我在 Ms-Access 中有两个表。我想检查RollNo 是否为null 给出-1,否则给出RollNo。我在 C# 应用程序中使用内部联接查询表。 这是查询:

select isnull(s.RollNo, -1) as Roll, c.Class from students s inner join Classes c on s.ClassID = c.ClassID

当我运行这个查询时,它在Roll 中给出了空值。

【问题讨论】:

RollNo null 还是空的?它是什么类型 - 数字、字符? 清空。类型是数字 【参考方案1】:

语法是这样的,使用 Nz:

select Nz(s.RollNo, -1) as Roll, ...

否则,如果在 Access 之外:

select iif(s.RollNo is null, -1, s.RollNo) as Roll, ...

【讨论】:

这项工作在 Ms-Access 中。但我必须在 C# 应用程序中使用这个查询。外部 Ms-Access nz 不起作用。 @MuhammadRizwan 。 . .您的问题被标记为 MS Access,因此这回答了您提出的问题。如果你有一个 C# 问题,那么作为一个新问题并适当地标记它。 我已经尝试了编辑后的答案。但它仍然提供Roll 的空单元格。 也许您有空字符串,而不是 Null,请参阅编辑后的答案。仔细检查您的数据 - 我们无法为您做到这一点。 那么你有一个值或空值。检查select s.RollNo as Roll, ...

以上是关于两个表连接时如何检查字段是不是为空的主要内容,如果未能解决你的问题,请参考以下文章

两个表进行左连接(LEFT JOIN ) 如何只显示右表中为空值的记录行,左表与右表存在关联的记录不显示。

如何使用连接表检查房间查询中的空参数?

如何检查数据库中已有的空表[重复]

如何将Mysql中的表与空表连接起来

比较与特定字段有关的两个表之间的差异时如何正确连接

如何使用可为空的列连接 MySQL 表?