2015-09-19 4 views
1

Я хочу сделать что-то вроде этого:MSSQL - Заменить строку и результат обновления в другую таблицу

declare @manufacture varchar(MAX) 
declare @model varchar(MAX) 
declare @version varchar(MAX) 
declare @fipeId varchar(MAX) 
set @manufacture = (select top 1 MarcaFipe from fipeNew where ModeloFipe like 'Palio%' group by MarcaFipe) 
set @model = (select ModeloFipe replace(fipeNew.ModeloFipe, '%', 'Palio') from fipeNew where ModeloFipe like 'Palio%') 
set @version = (replace(fipeNew.ModeloFipe, 'Palio ', '') from fipeNew where ModeloFipe like 'Palio%') 
set @fipeId = (select CodigoFipe from fipeNew where ModeloFipe like 'Palio%') 

UPDATE vehicle 
SET [email protected], 
[email protected], 
[email protected], 
[email protected] 

Короче говоря, у меня есть следующая таблица:

http://i.imgur.com/pUnqj5s.png

Примечание: не мог» t сообщение из-за моей репутации.

Я хочу разбить dbo.newFipe.ModeloFipe, который имеет строку типа «Palio%» и MarcaFipe = «Fiat» и задает первое слово (Palio в этом случае) в dbo.vehicle.model, а остальную часть подстрока в dbo.vehicle.version.

Как я могу это сделать?

Заранее спасибо.

ответ

1

Вы не можете вставить две таблицы в один оператор.

Вы можете использовать этот запрос, чтобы получить свои значения для вставки:

select distinct left(ModeloFipe,charindex(' ',ModeloFipe)) as Model, right(ModeloFipe,len(ModeloFipe)-charindex(' ',ModeloFipe)) as Version 
from dbo.newFipe 
where ModeloFipe like 'Palio%' and MarcaFipe='Fiat'