如果您在談論SQL Server,請始終轉到源代碼。
http://technet.microsoft.com/en-us/library/bb510741.aspx
對於IN操作符:
http://technet.microsoft.com/en-us/library/ms177682.aspx
下面是從文檔的例子:
USE AdventureWorks2012;
GO
SELECT p.FirstName, p.LastName
FROM Person.Person AS p
JOIN Sales.SalesPerson AS sp
ON p.BusinessEntityID = sp.BusinessEntityID
WHERE p.BusinessEntityID IN
(SELECT BusinessEntityID
FROM Sales.SalesPerson
WHERE SalesQuota > 250000);
GO
這裏,in聲明看着子的結果 - 查詢,一個SELECT語句。
讓我們改變在子查詢的WHERE子句中拉了回來只有兩個BusinessEntityIDs:
USE AdventureWorks2012;
GO
SELECT p.FirstName, p.LastName
FROM Person.Person AS p
JOIN Sales.SalesPerson AS sp
ON p.BusinessEntityID = sp.BusinessEntityID
WHERE p.BusinessEntityID IN
(SELECT BusinessEntityID
FROM Sales.SalesPerson
WHERE
(BusinessEntityID = 2 OR BusinessEntityID = 3)
);
GO
基本上是
USE AdventureWorks2012;
GO
SELECT p.FirstName, p.LastName
FROM Person.Person AS p
JOIN Sales.SalesPerson AS sp
ON p.BusinessEntityID = sp.BusinessEntityID
WHERE p.BusinessEntityID IN (2,3);
GO
這是結果子查詢的WHERE (BusinessEntityID = 2 OR BusinessEntityID = 3)
,那麼爲什麼不允許語法WHERE p.BusinessEntityID IN (2 OR 3);
?
[不要使用w3schools - 查看鏈接爲什麼](http://www.w3fools.com) –
@marc_s - 好的,謝謝 – Coffee
我的數據庫(postgresql 9.3)不允許它。你用什麼數據庫?錯誤:OR的參數必須是布爾類型,而不是整型 –