2015-09-04 42 views
1

+串连我需要连接两个不同表中的字段的基础上,当案件的结果。这是我迄今为止 -情况当两个表中

Select 
CASE WHEN [Record] = 'Criteria' then (dbo.[Table A].[Field] + ' ' + dbo.[Table B].[Field]) AS 'Name' 

Else ' ' 

INNER JOIN dbo.[Table] ON dbo.[Table].[Field] = dbo.[Table].[Field] 

From [Table] 

但是当我运行它,我不断收到错误

消息156,级别15,状态1,行2不正确的语法关键字 附近“如'。

我不知道我的陈述是完全错误的还是我错过了一些东西。

感谢

回答

0

请记住,使用+来串联字符串你会得到NULL如果tab_a.[Field]tab_b.[Field]为NULL。

二使用别名表名。

SELECT 
[Name] = CASE 
      WHEN [Record] = 'Criteria' THEN (tab_a.[Field] + ' ' + tab_b.[Field]) 
      ELSE ' ' 
      END 
FROM [dbo].[Table A] AS tab_a 
JOIN [dbo].[Table B] AS tab_b 
    ON tab_a.[Field] = tab_b.[Field] 
+0

谢谢 - 该解决方案完美的作品。 –

+0

@ SQ-what回答并关闭的好记号;) – lad2025

0
Select 
CASE WHEN [Record] = 'Criteria' then (dbo.[Table A].[Field] + ' ' + dbo.[Table B].[Field]) 
Else ' ' 
end AS 'Name' 
From [Table] 
INNER JOIN dbo.[Table] ON dbo.[Table].[Field] = dbo.[Table].[Field] 
0

然后用你的case语句的问题;

CASE WHEN [Record] = 'Criteria' then (dbo.[Table A].[Field] + ' ' + dbo.[Table B].[Field]) 
Else ' ' end AS 'Name'