我有以下查询:如果,否则,如果,否则不能正常工作只有与别的事情
Declare @qty int
SET @qty = (SELECT Qty FROM StockTB WHERE ProductID='6' AND Qty=0)
if(@qty =0)
Update StockTB SET Qty=Qty+5, BatchNo='1234', ExpDate='03/11/2018' WHERE
ProductID='6' AND Qty=0
Else
INSERT INTO StockTB Values('6', '5', '1234', '03/11/2018')
上述查询工作正常。但是当我在查询中添加ELSE IF
时,它会失败。这里是ELSE IF
的实现。
Declare @expdate date
SET @expdate =(SELECT ExpDate FROM StockTB WHERE ProductID='6' AND
ExpDate='03/11/2018')
Declare @qty int
SET @qty = (SELECT Qty FROM StockTB WHERE ProductID='6' AND Qty=0)
if(@qty =0)
Update StockTB SET Qty=Qty+5, BatchNo='1234', ExpDate='03/11/2018' WHERE
ProductID='6' AND Qty=0
Else if(@expdate='03/11/2018')
Update StockTB SET Qty=Qty+5 WHERE ProductID='6' AND ExpDate='03/11/2018'
Else
INSERT INTO StockTB Values('6', '5', '1234', '03/11/2018')
'SET @qty =(SELECT数量从StockTB WHERE的ProductID = '6',数量= 0)' - 当你期望这是非零? –
@Damien_The_Unbeliever有一种情况:如果查询没有返回结果('NULL')。 – MatSnow
@MatSnow - 同意 - 这将是一个非常奇怪的写作方式,看起来只需要一个'MERGE'。 –