DECLARE @SomeVariableTable TABLE (
Field INT
)
INSERT INTO @SomeVariableTable
SELECT st.Field
FROM SomeTable st;
SELECT *
FROM AnotherTable at
WHERE at.SomeField IN @SomeVariableTable
如何使上述代码有效?
我已经考虑将整个列连接到VARCHAR中,虽然这适用于VARCHAR但它不适用于INT。
答案 0 :(得分:1)
除了上一个SELECT
之外,您的代码几乎没有问题。更改上一个SELECT
部分,如下所示。
SELECT *
FROM AnotherTable at
WHERE at.SomeField IN (select Field from @SomeVariableTable)
答案 1 :(得分:1)
这就是你要做的事情......
DECLARE @SomeVariableTable TABLE (
Field INT
)
INSERT INTO @SomeVariableTable
SELECT st.Field
FROM SomeTable st;
SELECT *
FROM AnotherTable at
WHERE at.SomeField IN (
SELECT Field
FROM @SomeVariableTable
)
但是你为什么要这样做呢?你可以简单地完成像
这样的事情SELECT *
FROM AnotherTable at
WHERE at.SomeField IN (
SELECT Field
FROM SomeTable
)