如何在NOT IN sql语句中使用表变量

时间:2016-09-14 22:36:58

标签: sql-server

我试图在这样的NOT IN where子句中使用表变量@notified ....

DECLARE @notified TABLE (DMT_ID INT)

INSERT INTO @notified
    SELECT [DMT_ID] 
    FROM [dbo].[PU_Transaction] 
    WHERE [PU_TransactionStatus] = 3

SELECT * from @notified 

SELECT [NRO_TRANSACCION] 
FROM [dbo].[TRANSACCION] 
WHERE [NRO_TRANSACCION] NOT in (@notified)

但是我在最后的SELECT

中收到了这个错误
  

必须声明标量变量“@notified”。

有什么问题?怎么能解决这个问题。

2 个答案:

答案 0 :(得分:1)

你需要使用它:

SELECT [NRO_TRANSACCION] 
FROM [dbo].[TRANSACCION] 
WHERE [NRO_TRANSACCION] NOT IN (SELECT DMT_ID FROM @notified)

您需要在SELECT子句中添加NOT IN语句 - 而不仅仅是表变量名...

答案 1 :(得分:0)

从y中选择x,其中x不在(从z中选择x)

你应该有两个选择使用not in。