是否可以在不使用表变量或临时表的情况下创建内容表?

时间:2013-12-18 18:41:45

标签: sql-server sql-server-2008 tsql

我有一张表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.还有其他选择吗?

由于

1 个答案:

答案 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行。