两个表中的+连接时的情况

时间:2015-09-04 08:48:53

标签: sql tsql

我需要根据一个案例的结果连接来自不同表的两个字段。这是我到目前为止 -

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关键字附近的语法不正确   'AS'。

我不知道我的陈述是完全错误还是遗漏了错误。

由于

3 个答案:

答案 0 :(得分:0)

请注意,如果+NULL为NULL,则使用tab_a.[Field]连接字符串将获得tab_b.[Field]

第二次使用表名的别名。

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]

答案 1 :(得分: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]

答案 2 :(得分:0)

然后你的案例陈述有问题;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections.ObjectModel;

namespace DXApplication1
{
    public class EntitiesViewModel
    {
        public EntitiesViewModel()
        {
            LoadEntities();
        }
        void LoadEntities()
        {
            Entities = new ObservableCollection<Entity>
        {
            new Entity(){ Item1="A", Item2="A0", Item3="A00"},
            new Entity(){ Item1="B", Item2="B0", Item3="B00"},
            new Entity(){ Item1="C", Item2="C0", Item3="C00"},
        };
        }
        public ObservableCollection<Entity> Entities { get; private set; }
        public virtual Entity SelectedEntity { get; set; } // Bindable property
    }
    public class Entity
    {
        public string Item1 { get; set; }
        public string Item2 { get; set; }
        public string Item3 { get; set; }
    }
}