我的表中有一个字段提供车辆(轿车、卡车、货车等)的描述。不幸的是,这些描述并不完全一致....
Example:
CAR#61
CAR # 124
CAR# 469
我需要读取如下数据:
CAR#XXX
-没有空格,如果汽车在数字0以下,则填充为3个数字。例如:CAR#3
应该读作CAR#003
。
还有,我只是需要这些车。卡车、货车等根本不应该改变。
您没有指定使用的数据库;Oracle SQL Developer是Oracle的工具,它能够连接到其他数据库,但是-我假设你使用Oracle,所以-这里有一个选项,你可能会尝试。
样本数据:
SQL> select * from vehicles order by col;
COL
---------
CAR # 124
CAR# 469
CAR#61
TRUCK1
VAN #2
仅更新cars。如何?CAR#
为常数,可节省提取的工作量。然后获取字符串末尾的任何数字,并将该值左加0,长度不超过3个字符。
SQL> update vehicles set
2 col = 'CAR#' || lpad(regexp_substr(col, 'd+$'), 3, '0')
3 where substr(col, 1, 3) = 'CAR';
3 rows updated.
结果:
SQL> select * from vehicles order by col;
COL
---------
CAR#061
CAR#124
CAR#469
TRUCK1
VAN #2
SQL>