在 SQL Server 中,可以使用 IF...ELSE IF 语句来根据条件执行不同的操作。IF...ELSE IF 语句的语法如下: IF condition
statement(s)
ELSE IF condition
statement(s)
ELSE IF condition
statement(s)
...
ELSE
statement(s)
END IF;
其中,condition 是一个逻辑表达式,用于判断条件是否为真。如果 condition 为真,则执行相应的 statement(s)。如果 condition 为假,则跳过该条件并检查下一个 ELSE IF 条件,如果没有 ELSE IF 条件,则执行 ELSE 块中的语句。 例如,以下是一个使用 IF...ELSE IF 语句的示例,该示例根据产品价格显示不同的信息: DECLARE @Price DECIMAL(10, 2) = 50.00;
IF @Price = 25.00 AND @Price = 50.00 AND @Price =0 AND LEN(@HXDATE)=0 --AND LEN(@VCB04)=0
BEGIN
SELECT
核销状态 AS 核销状态,
订单编号, 粉丝昵称, 会员姓名, 收货姓名或自提人, 联系电话, 商品名称,
商品数量, [商品单价(折扣前)], [商品单价(折扣后)], [商品价格(折扣前)],
[商品价格(折扣后)], 商品小计, 应收款, 下单时间, 付款时间, OPENID ,核销人,
核销时间,会员卡号
FROM 老商城待核验订单导出
WHERE 1=1 AND 订单编号 LIKE '%'+@ORDER_NO+'%' --AND CONVERT(VARCHAR(10),核销时间,120) LIKE '%'+@HXDATE+'%'
END
ELSE IF LEN(@HYKH)=0 AND LEN(@ORDER_NO)>=0 AND LEN(@HXDATE)>0
BEGIN
SELECT
核销状态 AS 核销状态,
订单编号, 粉丝昵称, 会员姓名, 收货姓名或自提人, 联系电话, 商品名称,
商品数量, [商品单价(折扣前)], [商品单价(折扣后)], [商品价格(折扣前)],
[商品价格(折扣后)], 商品小计, 应收款, 下单时间, 付款时间, OPENID ,核销人,
核销时间,会员卡号
FROM 老商城待核验订单导出
WHERE 1=1 AND 订单编号 LIKE '%'+@ORDER_NO+'%' AND CONVERT(VARCHAR(10),核销时间,120) LIKE '%'+@HXDATE+'%'
END
ELSE
BEGIN
IF EXISTS (SELECT VCB04 FROM VBU1 WHERE VCB04=@VCB04)
BEGIN
IF EXISTS (SELECT 订单编号 FROM 老商城待核验订单导出 WHERE 订单编号=@ORDER_NO AND 核销人 IS NULL AND 核销时间 IS NULL AND 会员卡号 IS NULL AND 核销状态 ='未核销')
BEGIN
UPDATE 老商城待核验订单导出 SET 核销状态='已核销',核销人= @CZR_NO , 核销时间= GETDATE() , 会员卡号= @VCB04
WHERE 订单编号=@ORDER_NO AND 核销人 IS NULL AND 核销时间 IS NULL AND 会员卡号 IS NULL AND 核销状态 ='未核销';
SELECT
核销状态 AS 核销状态,
订单编号, 粉丝昵称, 会员姓名, 收货姓名或自提人, 联系电话, 商品名称, 商品数量,
[商品单价(折扣前)], [商品单价(折扣后)], [商品价格(折扣前)], [商品价格(折扣后)], 商品小计, 应收款, 下单时间, 付款时间, OPENID ,核销人, 核销时间,会员卡号
FROM 老商城待核验订单导出
WHERE 1=1 AND 订单编号 =@ORDER_NO;
END
ELSE
BEGIN
RAISERROR('订单编号有误或已核销,请检查后再提交!', 16, 1) WITH NOWAIT
END
END
ELSE
BEGIN
RAISERROR('输入的会员卡号不存在,请检查后再提交!', 16, 1) WITH NOWAIT
END
END
|