【发布时间】:2019-05-04 06:12:37
【问题描述】:
我需要返回一些包含我需要的值的数据,以及更多。如何检索数据,不包括其他地方存在的我不需要的值?
或者如果这是不可能的,需要删除的值的变化来自 5 种可能性,因此我可以“替换”任何出现的 5 吗?
例如:
TABLE1
ID ITEM
-------------------------
1 AAA:CAR
2 BBB:PLANE
3 AAA:BIKE
4 BBB:TRAIN
5 CCC:BUS
我认为下面会从结果中删除 AAA:
SELECT ITEM REPLACE(ITEM, 'AAA:', '')
FROM TABLE1
假设这会返回
ITEM
----------
CAR
BBB:PLANE
BIKE
BBB:TRAIN
CCC:BUS
但是我想将 AAA: 和 BBB: 和 CCC: 替换为 '' 其中 AAA: 或 BBB: 或 CCC: 在其他地方存在,例如这里:
TABLE2
ID THING
-----------------
1 AAA:
2 BBB:
3 CCC:
4 DDD:
5 EEE:
例如:
SELECT ITEM REPLACE(ITEM, '/* where THING ID exists in TABLE2 BETWEEN 1 and 5 */', '')
FROM TABLE1
或者如果这不可能,请说明可能存在的任何需要替换的变化:
SELECT ITEM REPLACE(ITEM, '/* AAA: or BBB: or CCC: or DDD: or EEE: */', '')
FROM TABLE1
此 SQL 新手将非常感谢您提供任何帮助!
【问题讨论】:
-
有没有可能,去掉
:之前的所有字符?还是您真的需要一份明确声明的替换清单?