簡體   English   中英

如何在sql語句中使用`OR`條件?

[英]How to use `OR` condition in sql statement?

我想在下面的sql語句中使用'OR'條件請幫我這樣做。

   SELECT DATE, SecurityId
    FROM StateStreet
    INNER JOIN Securities ON StateStreet.SecurityID = Securities.securityid
    AND (     (SecurityName LIKE '% R V %'
               AND Quantity < 0
               AND PortfolioId =@portfolioID)
           OR (SecurityName NOT LIKE '% R V %'
               AND Quantity > 0
               AND PortfolioId=@PortfolioID)
           OR (Value = Quantity
               AND Securities.PortfolioId =@PortfolioID) 
         )
   WHERE CONVERT(DATETIME,PeriodEndDate) = @PositionDate 

請幫我在上述聲明中使用OR條件,我需要在OR條件下檢查3個語句。

看起來你忘記了WHERE子句:

SELECT 
    DATE,
    SecurityId              
FROM
    StateStreet 
INNER JOIN
    Securities ON StateStreet.SecurityID =  Securities.securityid 
WHERE
    (SecurityName LIKE '% R V %' AND Quantity < 0  AND PortfolioId = @portfolioID)
OR
    (SecurityName NOT LIKE '% R V %' AND Quantity > 0  AND PortfolioId = @PortfolioID)
OR
    (Value = Quantity AND Securities.PortfolioId = @PortfolioID)

這是您第二次發布相同的問題。

您正在使用OR條件。

要么您不理解優先級,搜索條件,要么數據不是您所假設的。

訂單是:
按位(你沒有任何這些)
()


要么

打破查詢。

SELECT DATE, SecurityId, SecurityName, Quantity, Value, PortfolioId
FROM StateStreet
INNER JOIN Securities 
   ON StateStreet.SecurityID = Securities.securityid
WHERE CONVERT(DATETIME,PeriodEndDate) = @PositionDate 

然后
您可以將AND PortfolioId = @ portfolioID拉出來,因為它在每個或作為和

SELECT DATE, SecurityId, SecurityName, Quantity, Value, PortfolioId
FROM StateStreet
INNER JOIN Securities 
   ON StateStreet.SecurityID = Securities.securityid 
  AND PortfolioId = @portfolioID
WHERE CONVERT(DATETIME,PeriodEndDate) = @PositionDate 

SELECT DATE, SecurityId, SecurityName, Quantity, Value, PortfolioId
FROM StateStreet
INNER JOIN Securities 
   ON StateStreet.SecurityID = Securities.securityid 
  AND PortfolioId = @portfolioID
  AND (      Value = Quantity
        OR ( SecurityName LIKE '% R V %' )
      )
WHERE CONVERT(DATETIME,PeriodEndDate) = @PositionDate

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM