2

我在 SQL Server 2008 R2 的 SELECT 语句中连接地址字段以将街道地址放在一起。如果公寓字段不为空,如何使用 IIF/CASE 语句添加“Apt#”?

SELECT ISNULL(RTRIM(StreetNo),'') + ' ' 
    +  ISNULL(RTRIM(StPfx),'')+ ' ' 
    + ISNULL(RTRIM(Street),'')   + ' ' 
    + ISNULL(Stfx, ' ') + ' ' 
    + ISNULL(RTRIM(Apt),'') HOME_ADDRESS  
4

3 回答 3

3
(CASE WHEN Apt IS NOT NULL THEN 'Apt# ' + Apt ELSE '' END)
于 2012-10-15T16:14:26.307 回答
0
SELECT ISNULL(RTRIM(StreetNo),'') 
    + ' ' + ISNULL(RTRIM(StPfx),'')
    + ' ' + ISNULL(RTRIM(Street),'') 
    + ' ' + ISNULL(Stfx, ' ') 
    + CASE WHEN Apt IS NULL THEN '' ELSE ' ' + RTRIM(Apt) END AS HOME_ADDRESS 

如果Apt不是空的,而是空的,我会这样写:

    + CASE WHEN RTRIM(isnull(Apt, '')) = '' THEN '' ELSE ' ' + RTRIM(Apt) END AS HOME_ADDRESS 
于 2012-10-15T16:15:35.517 回答
0

您可以依靠将任何内容连接到 NULL 是 NULL 的事实;

... + ISNULL('Apt# ' + @apt, '')
于 2012-10-15T16:19:45.033 回答