用于根据匹配条件更新列值的Oracle SQL语句

xoefb8l8  于 2023-02-03  发布在  Oracle
关注(0)|答案(1)|浏览(144)

如何根据特定条件将列值设置为3个值之一?
例如,我有一个名为Customer的表,该表具有名为customer_level的属性,其中该客户可以具有3个可能级别之一。
每个客户都有一个名为customer_spent的属性,该属性将显示客户已经花费了多少钱。
我有一个条件,如果一个客户花费〉= 100,他们被给予S等级;如果一个客户花费〉= 50但〈100,他们被给予A等级;如果一个客户花费〉= 0但〈50,他们被给予B等级。
那么,当其中一个条件匹配时,如何将customer_level设置为S、A或B呢?
我目前正尝试以Customer表的UPDATE语句的形式编写此语句,但不确定如何构造语句。
谢谢!

oxcyiej7

oxcyiej71#

在Oracle中有一个CASE/WHEN表达式:

SELECT
CASE WHEN spent >= 100
     THEN 'S'
     WHEN spent >= 50 AND spent < 100
     THEN 'A'
     WHEN spent > 0 AND spent < 50
     THEN 'B'
     ELSE 'NONE'
 END as rank from table;

相关问题