SQL IF NOT IN 语法

SQL IF NOT IN syntax

谁能告诉我下面的代码有什么问题吗?

IF (SELECT T0.U_DestType FROM OCRD T0 INNER JOIN ODLN T1 ON T1.CardCode = T0.CardCode WHERE T1.DocEntry ='4') NOT IN ('1','2','6')

BEGIN
SELECT 'SHOW_ERROR' FOR BROWSE
END

它编译没有错误但没有给出预期的结果(当 U_DestType 不是 1,2 或 6 时声明 SHOW_ERROR)

非常感谢。

使用Exists

IF Exists 
 (SELECT 1 FROM OCRD T0 INNER JOIN ODLN T1 ON T1.CardCode = T0.CardCode WHERE T1.DocEntry ='4' and T0.U_DestType NOT IN ('1','2','6'))
Begin
--some quwery
End

您的联接有可能 return 多个值并且您的查询将失败。

您还可以使用计数功能 试试这个

IF ((SELECT count(T0.U_DestType) FROM OCRD T0 INNER JOIN ODLN T1 ON T1.CardCode = T0.CardCode WHERE T1.DocEntry ='4') NOT IN ('1','2','6'))==0)

BEGIN
SELECT 'SHOW_ERROR' FOR BROWSE
END