Sql Join可以获取两个列表中的值

时间:2015-03-10 18:11:26

标签: sql-server

Microsoft SQL Server 2012

我有三个标量变量:

declare @ListA table (value int);
declare @ListB table (value int);
declare @InBoth table (value int);

我想获得两个列表中的数字列表。

insert into @InBoth 
   select value 
   from @ListA 
   inner join @ListB on @ListA.value = @ListB.value;

我收到错误

  

必须声明标量变量

@ListA语句中的@ListBjoin

如何获取两个列表中的数字列表?

1 个答案:

答案 0 :(得分:4)

您不能将table variable名称用作alias,而是将alias名称添加到table variable,并使用alias名称来标识列

INSERT INTO @InBoth
SELECT A.value
FROM   @ListA A
       INNER JOIN @ListB B
               ON A.value = B.value; 

或使用EXISTS运算符

INSERT INTO @InBoth
SELECT A.value
FROM   @ListA A
WHERE  EXISTS (SELECT 1
               FROM   @ListB B
               WHERE  A.value = B.value)