如何在sql中检查空字段

Ani*_*mar 0 sql t-sql sql-server sql-server-2008

我有一个SQL查询,它显示字段中的address1和address2为'address1,address2'.我的查询是

(S.Address1 + '  ,  ' + S.Address2)as Address1 
Run Code Online (Sandbox Code Playgroud)

但是当Address2中的值为空时它显示'address1',我只需要显示address1.How我可以删除逗号

Joh*_*Woo 5

使用 COALESCE

(COALESCE(S.Address1,'') + '  ,  ' + COALESCE(S.Address2, '')) as Address1 
Run Code Online (Sandbox Code Playgroud)

但上面的语句的问题是,,当它address2为null时,它将具有尾随,以进行修复

(COALESCE(S.Address1,'')  + COALESCE(' , ' + S.Address2, '')) as Address1
Run Code Online (Sandbox Code Playgroud)

更新1

CASE WHEN S.Address2 = '' 
     THEN S.Address1
     ELSE S.Address1 + '  ,  ' + S.Address2
END  AS Addrss
Run Code Online (Sandbox Code Playgroud)

  • 需要把逗号放在第二个`COALESCE`里面. (3认同)
  • 由于需求的变化,现在我们也需要一个'NULLIF'.*叹* (2认同)