【问题标题】:How join columns with null value?如何连接具有空值的列?
【发布时间】:2014-05-04 17:47:17
【问题描述】:

您好,请帮帮我。如何用空值连接 3 列?。

SELECT [item],[Prox],[z], [item]+[Prox]+[z] as result FROM [FIELD$];

结果。

【问题讨论】:

  • 使用COALESCE(column, '')函数。
  • 您使用的是哪个 DBMS?
  • 我们猜猜? SQL 服务器?

标签: sql sql-server database join


【解决方案1】:

试试这个:

SELECT [item],[Prox],[z], COALESCE([item],'')+COALESCE([Prox],'')+COALESCE([z],'') as result 
FROM [FIELD$];

说明:

COALESCE 按顺序计算参数并返回最初不计算为 NULL 的第一个表达式的当前值。

即,如果[item]NULL,那么COALESCE([item],'') 将返回一个空字符串。

其他选择:

您可以使用:而不是COALESCE(ColName,'')

  1. ISNULL(ColName,'')SQL Server

  2. IFNULL(ColName,'')MySQL

  3. NVL(ColName,'')Oracle

【讨论】:

    【解决方案2】:

    由于将多个字符串与至少一个空值连接会导致NULL,您可以使用coalesce 来解决此问题:

    SELECT
        [item],
        [Prox],
        [z],
        coalesce([item], '') + coalesce([Prox], '') + coalesce([z], '') as result
    FROM
        [FIELD$];
    

    coalesce 是 ANSI 标准,可用于几乎所有合理的数据库。

    【讨论】:

      【解决方案3】:

      在 SQL Server 2012 中,可以使用 CONCAT 函数:

      SELECT [item],[Prox],[z], concat([item],[Prox],[z]) as result FROM [FIELD$]; 
      

      【讨论】:

        猜你喜欢
        • 2010-12-12
        • 1970-01-01
        • 2011-11-23
        • 1970-01-01
        • 1970-01-01
        • 2011-03-18
        • 1970-01-01
        • 1970-01-01
        • 2017-09-25
        相关资源
        最近更新 更多