代码之家  ›  专栏  ›  技术社区  ›  Hogan

SQL中的FirstName和LastName是否太复杂?

  •  4
  • Hogan  · 技术社区  · 16 年前

    这个SQL看起来很复杂,当一个或两个字段都可以为空时,有没有更简单的方法来获取FirstName和LastName?

    SELECT COALESCE(LastName,'')+
           CASE WHEN LastName+FirstName IS NOT NULL THEN ', ' END+
           COALESCE(FirstName,'') AS Name
    FROM Person
    
    3 回复  |  直到 13 年前
        1
  •  13
  •   Charles Bretana    9 年前

    怎么样

    SELECT COALESCE(LastName + ', ' + FirstName, 
                    LastName, FirstName) Name
    FROM Person
    

    如果 firstname 或 lastname , ),变为null,强制联合检查,第二 姓氏 独自一人,然后如果 是null,最后是 名字 单独地

        2
  •  1
  •   HLGEM    13 年前

    若您将经常使用这种形式的名称,则可以通过使用一个peristed计算列在表中对其进行预计算。如果需要,甚至可以为该列编制索引。

    ALTER TABLE A
    ADD [person_name_last_first]  AS COALESCE(LastName + ', ' + FirstName, 
                    LastName, FirstName) PERSISTED
    

        3
  •  -3
  •   mRt    16 年前

    我认为这一点都不复杂。。。 在MSSQL上,您可以执行以下操作

    SELECT Isnull(LastName,'') + ', ' + Isnull(FirstName,'')
    FROM Person