在Oracle SELECT查询中,如何更改特定条目的描述?



我的表中有一个字段提供车辆(轿车、卡车、货车等)的描述。不幸的是,这些描述并不完全一致....

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>

最新更新