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
语句中的@ListB
和join
。
如何获取两个列表中的数字列表?
答案 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)