SQL Server 2008 - 当列为空时设置一个值

标签 sql sql-server

我正在 SQL Server 2008 数据库上执行 SELECT 语句。

SELECT Name, DOB, Address1, Address2, City, State, Zip
FROM Users

但是,如果上述任何列对于特定行恰好为空,我想将值 NA 放入该列中。

通常会返回:

SMITH^JOHN, 1/1/1980, 5140 N 1ST ST, NULL, NOWHERE, WA, 98221
DOE^JANE, 5/5/1970, NULL, NULL, NULL, NULL, NULL

我想要返回的是:

SMITH^JOHN, 1/1/1980, 5140 N 1ST ST, NA, NOWHERE, WA, 98221
DOE^JANE, 5/5/1970, NA, NA, NA, NA, NA

但是,我不想实际更新数据库。我只希望 SELECT 语句在结果为 NULL 时返回此静态值。

最佳答案

您想要使用COALESCE功能。

SELECT
    Name
,   DOB
,   COALESCE(Address1, 'NA')
,   COALESCE(Address2, 'NA')
,   COALESCE(City, 'NA')
,   COALESCE(State, 'NA')
,   COALESCE(Zip, 'NA')
FROM Users

关于SQL Server 2008 - 当列为空时设置一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11231250/

相关文章:

java - org.h2.jdbc.JdbcSQLException : Table "PACCHETTIVISITETURISTICHE" not found; SQL statement:

sql - 使用通配符选择 PostgreSQL 中的多列

php - 使用 php 和 mysql 在数据库中查找匹配项

sql - 表数据有聚集索引时如何存储

sql - 更新两个表?

sql - 当列已经为 NOT NULL 时,无法在可为空的列上定义 PRIMARY KEY 约束

c# - 为一张表中的嵌套数据创建简化查询 (.NET Core)

mysql - 在另一个表 MySQL 上加入 COUNT 个更改

sql-server - SSIS 作业无法连接到数据库

sql-server - 如何删除重复的行?