sql 按规则生成变量(根据另一个变量和自然递增值)批量修改、基本语句

最近遇到个需求,需要将数据库中一个字段设置为按给定的规则递增,比如下图:

现在要将 dest_name 全部改为class_"班级"#student_"从1递增的序号" 的格式,也就是像第一个的dest_name那样。

最后得到的数据库语句是:

update test set dest_name = 'class_'||class||'#'||(select seq from (select row_number() over(order by id) as seq, id from test) as table2 where table2.id = test.id) ;

红色部分其实就为了产生递增的值,如果不是从1开始,可以在末尾+n, || 是数据库字符连接;

结果如下:

 

设置变量:

update table_name set value_name= replace(value_name, 'XXX', '***') where value_name2= 'value';

delete from table_name where value_name= 'value';

设置在value_name2 = '7'条件下 所有value_name3以789开头的value_name 为123456

update table_name set value_name= '123456' where value_name2 = '7' and value_name3 like '789%';

注意like使用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章