sql 合并可能具有空值的两列

标签 sql sql-server null

这应该是一件容易做的事情,但我似乎一直在获得额外的空间。基本上我想做的是将多列合并为一列。但这些列中的每一列也可能为空。当我组合它们时,我还希望它们之间用空格 (' ') 分隔。

我创建的是以下查询:

select 'All'= ISNULL(Name+' ','')+ISNULL(City+' ','')+ISNULL(CAST(Age as varchar(50))+' ','')  from zPerson

结果是:

All
John Rock Hill 23 
 Munchen 29 
Julie London 35 
 Fort Mill 27 
Bob  29 

如您所见:当名称为空时,会有一个额外的空格。我不想这样。

初始表是:

id  Name    City            Age InStates    AllCombined
1   John    Rock Hill       23  1              NULL
2           Munchen         29  0              NULL
3   Julie   London          35  0              NULL
4           Fort Mill       27  1              NULL
5   Bob                     29  1              NULL

有什么想法吗?

最佳答案

select 'All'= LTRIM(ISNULL(Name+' ','')+ISNULL(City+' ','')+ISNULL(CAST(Age as varchar(50))+' ','')  from zPerson)

SEE LTRIM()

关于sql 合并可能具有空值的两列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15879918/

相关文章:

asp.net - 如何将 Unicode 值作为 select 命令的参数传递

.net - SQL Server Varbinary(最大): select a subset of bytes from the varbinary field

mysql - sql 从 varchar 转换为 double 并保存重复的键值

c# - EF代码优先关系的问题

c# - SQLite 查询中的 "Apply joins is not supported"

sql-server - 这个表达式怎么能达到NULL表达式呢?

c# - 抛出异常的最佳方式

.net - DB4o Linq 查询 - 如何检查空字符串

mysql - 清理已经规范化的 mySQL 数据库的工具?

mysql - 我怎样才能使这段代码更简单?