在Oracle SELECT查询中如何统一调整特定车辆条目的描述格式
Oracle 车辆描述字段格式化查询方案
假设存储车辆信息的表名为vehicle_table,待处理的描述字段名为vehicle_desc,对应查询语句如下:
SELECT CASE -- 匹配所有轿车类条目,'i'参数表示不区分CAR大小写,需严格区分可删除该参数 WHEN REGEXP_LIKE(vehicle_desc, '^CAR\s*#\s*\d+$', 'i') THEN 'CAR#' || LPAD(REGEXP_REPLACE(vehicle_desc, '[^0-9]', ''), 3, '0') -- 非轿车类条目直接返回原值 ELSE vehicle_desc END AS formatted_vehicle_desc FROM vehicle_table;
逻辑说明
- 匹配规则:仅对开头为CAR、后续带#和数字的轿车条目做处理,卡车、厢式货车等其他类型条目完全保留原始值
- 格式处理逻辑:先提取条目中的纯数字编号,再用前导零补全到3位,最后拼接为标准的
CAR#XXX格式,自动去除所有多余空格
效果验证
对应示例转换效果如下:
| 原始值 | 转换后值 |
|---|---|
| CAR#61 | CAR#061 |
| CAR # 124 | CAR#124 |
| CAR# 469 | CAR#469 |
| CAR#3 | CAR#003 |
| TRUCK#56 | TRUCK#56 |
| VAN # 78 | VAN # 78 |
内容的提问来源于stack exchange,提问作者DaBears3579
相关产品推荐
相关产品推荐

