【问题标题】:SQL Query to concatenate strings or add default value用于连接字符串或添加默认值的 SQL 查询
【发布时间】:2010-02-21 09:23:41
【问题描述】:

我必须创建一个显示通过连接其他一些字段创建的字段的视图。我使用的简单查询是这个:

SELECT     
    CODPROY, DESCPROY, USER, CODPROY + ' - ' + USER + ' - ' + DESCPROY AS Expr
FROM    
    dbo.PROY

问题是 USER 可能为 NULL,在这种情况下,我必须插入一个默认文本,例如“NOT AVAILABLE”。这可以在视图中完成吗?

【问题讨论】:

  • 这是 SQL Server,抱歉。无论如何,我更喜欢可移植到多个 RDBM 的标准 SQL 解决方案。

标签: sql string concatenation


【解决方案1】:

如果您使用的是 SQL Server,请使用 coalesce

SELECT 
  CODPROY, 
  DESCPROY, 
  USER, 
  CODPROY + ' - ' + COALESCE(USER,'NOT AVAILABLE') + ' - ' + DESCPROY AS Expr 
FROM dbo.PROY

【讨论】:

  • 喜欢使用 Transact SQL 命令的解决方案。非常感谢。
【解决方案2】:

是的,可以做到。您需要使用IFNULL (mySQL) 或类似的东西..

CREATE VIEW foobar as 
SELECT CODPROY
      , DESCPROY
      , USER
      , CODPROY + ' - ' + IFNULL(USER,'DEFAULT') + ' - ' + DESCPROY AS Expr 
 FROM dbo.PROY;

【讨论】:

  • 我不认为它是 MySQL,因为它不允许使用 '+' 进行连接。
猜你喜欢
  • 2023-03-25
  • 2018-01-23
  • 1970-01-01
  • 1970-01-01
  • 2014-12-07
  • 2023-03-14
  • 2023-04-01
  • 2022-10-25
  • 1970-01-01
相关资源
最近更新 更多