url*_*der 2 t-sql sql-server sql-server-2008
我有一个表A需要加入表B.
表B是2列的常数
year, flag
----------
2010, A1
2011, A2
2012, A3
2013, A4
2014, A5
Run Code Online (Sandbox Code Playgroud)
是否有可能做类似下面的事情(*sql server中的语法无效,只是用它来表示我的意思):
SELECT *
FROM A RIGHT JOIN (
2010, 'A1';
2011, 'A2';
2012, 'A3';
2013, 'A4';
2014, 'A5';
)
B ON A.year = B.year
Run Code Online (Sandbox Code Playgroud)
我不想将表变量或临时表用于B.还有其他选择吗?
谢谢
是的,您可以使用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
Run Code Online (Sandbox Code Playgroud)
但是,此表未编入索引,并且限制为最多1000行.