在T-SQL中,我有一个视图,包括一个连接:
inner join db..address addr
on addr.town = f.town
我需要以某种方式修改此连接,如果f.town是一个特定值(让我们说" abc"),它还包括另一个值(即" abcd&# 34)。在所有其他情况下,它只需要f.town的值。像这样:
inner join db..address addr
on addr.town in ("abc", "abcd")
我试图这样做,但它不起作用:
inner join db..address addr
on (case when f.town = "abc"
then addr.town = f.town
else addr.town in (f.town, "abcd"))
有什么建议吗?
答案 0 :(得分:1)
这可以解决这个问题吗?
inner join db.address addr
on f.town = addr.town OR (f.town='abc' AND addr.town ="abcd")
答案 1 :(得分:0)
如果我了解你,你是否正在尝试创建一个类似于此的结构? 没有测试它,这是一个混乱的事情 - 如果可以,请提供样本数据;
SELECT *
FROM TableA A
JOIN TableB B ON 1 = (
CASE
WHEN A.Moo = B.Moo THEN 1
WHEN A.Moo = B.Moo + 'x' THEN 1
ELSE 0
END
)