我需要根据一个案例的结果连接来自不同表的两个字段。这是我到目前为止 -
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'。
我不知道我的陈述是完全错误还是遗漏了错误。
由于
答案 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; }
}
}