我們有一項功能,允許我們創建SQL以基於嵌套查詢從一個表中取回數據,該查詢根據來自另一個表的匹配條件過濾記錄。現在,我們需要能夠根據nexted查詢的前x個記錄從第一個表中取回數據,而不是所有匹配的記錄。例如,我們要像SQL Server - 需要根據嵌套級別返回數據
SELECT Name, Address, City, State, Zip
FROM CUSTOMERS
WHERE Customer_Location IN (SELECT TOP 100
CustomerID,
Rank() OVER PARTITION BY TID ORDER BY TerritoryName DESC) AS 'RANK'
FROM Territories
WHERE Nation = 'Canada')
但使用IN語句,到目前爲止,沒有很好的,因爲我們只能返回一列,並使用EXISTS不工作,因爲所有的存在確實是返回「TRUE 「如果任何字段匹配(即使我們把鏈接放回主查詢)。有誰知道我可以如何讓這個工作?謝謝。
我不是很清楚你在這裏要做什麼。你的問題說你不能使用'IN',但在你明確給出的例子中可以。你正在計算'Rank',但是這對'TOP'沒有影響。你正在匹配'Customer_Location'和'CustomerID',這看起來很奇怪。這是您的實際查詢還是您在發佈之前對其進行了過於簡單的說明? – 2010-07-20 21:11:04