sql - 如何有条件地返回一个字段或另一个字段?

标签 sql sql-server

我有一个Customer 表。此表由字段 FirstNameLastNameCompanyName 组成。业务逻辑是,如果 CompanyName 有任何值,则查询应返回 CompanyName,否则,如果 CompanyNameNULL 或空,它应该返回 FirstNameLastName 的组合。

我现在只有...

select ID, (FirstName + ' ' + LastName) as EntityName from Customer

select ID, (CompanyName) as EntityName from Customer

如何根据 CompanyName 的值是否存在,编写这样的 select 查询以返回 EntityName 中的一个或另一个?

最佳答案

您将使用 COALESCE():

select ID, COALESCE(CompanyName, FirstName + ' ' + LastName) as EntityName
from Customer;

这假定 NULL 值表示缺少 CompanyName。否则,您将使用具有适当逻辑的 CASE

关于sql - 如何有条件地返回一个字段或另一个字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38944403/

相关文章:

c# - 创建 Intranet 站点

mysql插入按日期分组的最大最小值

sql - LIKE 子句中的正则表达式只接受字母数字和破折号

SQL Server服务启动失败

php - mysql_fetch_array 中出现意外结果

mysql - 选择包含一列中的值的多行

sql-server - 删除表数据后如何将主键设置为1?

sql-server - 在开发 PC 上最小化安装 SQL Server 2012

sql - 使用 "Execute sp_Executesql"时的权限

sql-server - SQL 命令使用 Invoke-SQLCMD 执行两次