前两天才开始学习数据库,今天遇到问题,需要在表数据里面更改数据,普通更改只需要用 update set 就可以,但是这次需求是要根据条件改数据,因为只学了case when ,很自然就想到update set 嵌套 case when .
但是百度了好多,总是提示各种缺少关键字,或者什么的问题。
最后终于发现正确使用方法。。记录下,初学者可以参考:
需求:如果value>50,令value=50,否则不变
(1)首先创建一张名为 t1_student 的表,用insert into 插入数据(此处省略):
create table t1_student(
id integer primary key, --primary key 为设置主键,可省略name varchar2(32) not NULL, --添加数据时不允许为空
value varchar2(128) not NULL, --添加数据时不允许为空
value2 varchar2(128) default NULL, --添加数据时不给数据默认为空
enable integer default 1 --默认置为1
);
(2)插入数据后,书写update 语句
update t_param_default set value =
CASE
WHEN value > 50 THEN
'50' --因为value是字符串类型,故需要用单引号
ELSE
value
END
where name = 'abc';
--功能:如果value>50,令value=50,否则不变