обновить таблицу из выбора - PullRequest
0 голосов
/ 05 октября 2018

Я использую ORACLE DATABASE 11g Express Edition и Microsoft SQL Server Management Studio 17.

У меня есть две таблицы

первая таблица: CARS

Code | Brand_Model
01   | honda/HVR
02   | Volks/Golf
03   |  Fiat

секундатаблица: INFOS

Brand | Model
is empty for now

вот проблема:

Мне нужно выбрать данные из cars.brand_model и разделить.Данные перед '/', мне нужно поместить в INFOS.Brand, а данные после '/', мне нужно поместить в INFOS.Model И, когда нет '/' (как де-код 3 в таблице CARS ').), мне нужно поместить информацию «нет информации» в INFOS. Модель

Я сделал этот выбор:

select 
iif(CHARINDEX('/',c.brand_model,1) > 0, substring(c.brand_model,0,charindex('/',c.brand_model,1)),c.brand_model) as brand,

iif(CHARINDEX('/',c.brand_model,1) > 0, substring(c.brand_model,charindex('/',c.brand_model,1)+1,len(c.brand_model)),'NO INFORMATION') as model 
from CARS c;

Этот выбор показывает информацию точно так же, как янужно, но это просто выбор.

Brand     Model
Honda     HVR
Volks     Golf
Fiat      No Information

Мне нужно поместить эту информацию (эти выборки) в таблицу информации.

Я поместил бренд, используя код ниже:

insert into infos (brand) select 
iif(CHARINDEX('/',c.brand_model,1) > 0, substring(c.brand_model,0,charindex('/',c.brand_model,1)),c.brand_model) 
from CARS c

и все в порядке.Но теперь мне нужно сделать обновление в таблице INFOS, с моделями.Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Это рабочий синтаксис Oracle, может быть, вы найдете его полезным:

insert into infos (brand, model)
select case when instr(brand_model, '/') > 0 
            then substr(brand_model, 1, instr(brand_model, '/') - 1) 
            else brand_model
       end,
       case when instr(brand_model, '/') > 0 
            then substr(brand_model, instr(brand_model, '/') + 1) 
            else 'no information'
       end
  from cars
0 голосов
/ 05 октября 2018

Хотя код, которым вы поделились, не похож на Oracle, но вы всегда можете использовать инструкцию MERGE, если хотите вставить данные, если они не существуют, и обновить запись, если она уже существует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...