sql - 在 SQL 表的每一行中查找最后一个 NOT NULL 列的值

标签 sql database sql-server-2008

我的数据库中有一张表,用于存储地址。地址可以是多行(1到6行)

地址的每一行存储为一个单独的列,最多 6 列。

我现在想遍历表中的每一行并找到最后一个 NOT NULL 列的值。这可能是第 3、4、5 或 6 列。

我需要一个 SQL 命令,其中给定一行我得到最后一列不为空的值。

最佳答案

只需使用 COALESCE()返回第一个非空值:

SELECT    COALESCE(Address6, Address5, Address4, Address3) AS LastNonNullValue
FROM      YourTable

关于sql - 在 SQL 表的每一行中查找最后一个 NOT NULL 列的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9808468/

相关文章:

sql - 将 Varchar 转换为 NVarchar?

sql - 在 SQL Server 2008 中按出现次数透视

sql - 在 ms-access 中获取表的外键约束列表?

sql - 将 SQL 表转换为以列为父节点的 XML

sql - 在插入和更新语句中使用 if/else

sql - PostgreSQL 获取一列为最小值的行

sql-server - 为此查询在我的表上添加索引

mysql - 使用选择填充值

sql - 关系数据库 : Is it fine to have a foreign key referencing an Associative table?

javascript - 单个node.js项目中的Mongoose和多个数据库