[英]Reusing Value of a subquery in Else clause
有什么辦法可以在 else 子句的 if 子句中使用 X 的值
if @bid_value>(SELECT MAX(bid_value) AS X FROM dbo.auctionDetails WHERE status = 0 AND vehicle_id=@vid GROUP BY vehicle_id)
BEGIN
//some code
END
ELSE IF X=NULL
BEGIN
//some code
END
您通常會將查詢結果分配給變量。
如果您正在運行 SQL 服務器:
DECLARE @max_bid_value INT;
SELECT @max_bid_value = MAX(bid_value)
FROM dbo.auctionDetails
WHERE status = 0 AND vehicle_id = @vid;
IF @bid_value > @max_bid_value
BEGIN
//some code
END
...
請注意,我從原始查詢中刪除了GROUP BY
子句 - 我認為這更清楚地表明它應該始終返回一個標量值。
請注意,如果要檢查變量是否為null
,則需要@bid is null
而不是@bid = null
。
為什么不為值創建一個 var?
DECLARE @maxValue INT
SELECT @maxValue = MAX(bid_value)
FROM dbo.auctionDetails
WHERE status = 0 AND vehicle_id = @vid
IF (@bid_value > @maxValue)
BEGIN
// some code
END
ELSE IF (@maxValue IS NULL)
BEGIN
// some code
END
關於如何獲得 MAX 值的評論:當您通過 vehicle_id = @vid 進行過濾時,您不需要 GROUP BY 子句,因為您只會獲得一個 vahicle_id 值的結果
您的查詢應如下所示:
DECLARE @X INT
SET @X = (SELECT MAX(bid_value) AS X FROM dbo.auctionDetails WHERE status = 0 AND vehicle_id=@vid);
IF @bid_value>@MAX
BEGIN
//some code
END
ELSE IF X=NULL
BEGIN
//some code
END
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.