我有一张表A需要加入表B.
表B是2列
的常数year, flag
----------
2010, A1
2011, A2
2012, A3
2013, A4
2014, A5
是否可以执行以下操作(* sql server中的语法无效,只是用它来表示我的意思):
SELECT *
FROM A RIGHT JOIN (
2010, 'A1';
2011, 'A2';
2012, 'A3';
2013, 'A4';
2014, 'A5';
)
B ON A.year = B.year
我不想将表变量或临时表用于B.还有其他选择吗?
由于
答案 0 :(得分:6)
是的,您可以使用VALUES
在计划中创建一个文字值表
SELECT *
FROM A
RIGHT JOIN ( VALUES(2010, 'A1'),
(2011, 'A2'),
(2012, 'A3'),
(2013, 'A4'),
(2014, 'A5') ) B(year, flag)
ON A.year = B.year
但此表未编入索引,并且限制为最多1000行。