当1列为空时,基于3列的空复合字段

时间:2016-03-23 16:32:20

标签: sql sql-server-2012 concat

我在SQL Server 2012中遇到了一些问题。每当postalcode为空时,整个ELSE语句都会提供null。

我尝试了Concat函数,但它在此SQL Server版本中无法识别为函数。请建议

CASE 
   WHEN adres.CD_land = 'NL' THEN (street) 
   ELSE upper(postalcode + ' '+street) 
END as Street,

2 个答案:

答案 0 :(得分:1)

使用COALESCE

CASE 
   WHEN adres.CD_land = 'NL' THEN street 
   ELSE upper(COALESCE(postalcode + ' ', '') + street) 
END as Street

答案 1 :(得分:1)

如果您使用的是2012,它有连续性,可能是您正在尝试错误的方式..有语法..

CASE 
   WHEN adres.CD_land = 'NL' THEN (street) 
   ELSE upper(concat(postalcode ,' ',street))
END as Street,