在一条select查询语句中给case使用@myvar变量
时间: 2024-02-05 17:14:25 浏览: 105
是的,你可以在SELECT语句中使用CASE表达式,同时使用MySQL用户变量。
例如,下面的查询将根据订单总金额计算折扣,并将结果存储在用户变量@discount中:
```
SELECT @discount := CASE
WHEN total_amount > 1000 THEN 0.1
WHEN total_amount > 500 THEN 0.05
ELSE 0
END AS discount,
order_date,
total_amount
FROM orders;
```
在这个例子中,如果订单总金额大于1000,则折扣为10%;如果总金额大于500,则折扣为5%;否则,折扣为0。将计算结果存储在@discount变量中,并在查询结果中返回。
注意,在SELECT语句中使用用户变量时,需要确保在使用变量之前,已经为其赋值。在上面的查询中,我们在CASE表达式中为@discount变量赋值。
相关问题
msyql 在case中使用变量
在 MySQL 中,在 CASE 表达式中使用变量是很常见的。可以使用 SET 语句为变量赋值,然后在 CASE 表达式中使用该变量。下面是一个示例:
```
SET @myvar = 'value';
SELECT
CASE
WHEN column1 = @myvar THEN 'Match'
ELSE 'No match'
END as result
FROM mytable;
```
在上面的示例中,我们首先使用 SET 语句为变量 @myvar 赋值,然后在 SELECT 语句的 CASE 表达式中使用该变量。如果列 column1 的值等于 @myvar 的值,则返回字符串 "Match",否则返回字符串 "No match"。
阅读全文