1
我在子查詢中的WHERE子句中有一個子查詢。儘管數據庫的設計問題(不是我的工作),但我在嘗試擴展此表達式中的頂級WHERE子句時遇到了一些奇怪的錯誤。下面的例子工作。SQL Server:WHERE子句中包含子查詢的布爾表達式
然後,添加一個簡單的布爾表達式和括號:
LEFT OUTER JOIN CargoVoyageLocation on CargoVoyageLocation.VoyageLocationID
= (SELECT TOP 1 CargoVoyageLocation.VoyageLocationID FROM CargoVoyageLocation
JOIN Cargo on CargoVoyageLocation.CargoID = Cargo.CargoID
JOIN CargoType on Cargo.CargoTypeID = CargoType.CargoTypeID
WHERE
(CargoType.SystemName = 'HAZMAT' OR CargoType.SystemName = 'BUNKERS' OR Cargo.IsBunkers = 1)
AND
Here ---> (1=0 OR CargoVoyageLocation.VoyageLocationID
= (SELECT VoyageLocationAttribute.VoyageLocationID FROM VoyageLocationAttribute
JOIN VoyageLocationAttributeName
ON VoyageLocationAttribute.VoyageLocationAttributeNameID = VoyageLocationAttributeName.VoyageLocationAttributeNameID
WHERE VoyageLocationAttribute.VoyageLocationAttributeNameID = (SELECT VoyageLocationAttributeNameID FROM VoyageLocationAttributeName WHERE SystemName = 'PREVIOUS_VOYAGE_ID')
AND VoyageLocationAttribute.AttributeInt = v.VoyageID) ORDER BY CargoVoyageLocation.ModifiedDate DESC))
這將產生以下錯誤:關鍵字 'ORDER' 近
- 不正確的語法。
- 'v'附近語法不正確。
我很難過。這裏發生了什麼?
正確的,問題解決了,你是我的英雄! – andrerav 2010-10-15 14:03:38