我需要返回一些数据,其中包含我需要的值以及其他值。我该如何检索数据(不包括其他地方没有的不需要的值)?
或者如果不可能,那么需要删除的值的变化是从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 newby的任何帮助,将不胜感激!
答案 0 :(得分:0)
查看此查询(sqlfiddle: online query):
select t1.ID, ISNULL(REPLACE(t1.Item, t2.Thing, ''), t1.Item) AS THING
from table1 t1
left outer join table2 t2 on (CHARINDEX(t2.Thing, t1.Item) != 0);