Я пытался вставить определенные данные из одной таблицы (table1
) в другую таблицу (table2
) таким образом, как если бы данные были существующими, просто обновите данные или вставьте данные. Но проблема теперь я сталкиваюсь, когда я добавил последнее условие, например, если first_name, например, «mss%», мне нужно вставить SERVICE_TYPE_ID 10 else 20. Но это не происходит для этого случая и не останавливается на всех случаях. я хотел бы знать, что случилось с последним случаем Condtionпроблема сложения слияния (в основном для обновления) block block
trim(b.first_name) like 'mss%'
THEN 10
ELSE 20
это в основном неисправным для раздела обновлений Слить и вставив 20 вместо 10 Вот мой полный запрос оракула
MERGE INTO table2 a
USING table1 b ON (a.second_name = b.first_name)
WHEN MATCHED THEN
UPDATE
SET a.friendly_name = TRIM(b.friendly_name),
a.account_number = TRIM(b.account_no),
a.ne_type = TRIM(b.ci_type),
a.service_type_id = CASE
WHEN upper(trim(b.company_name)) LIKE '%MWAN%'
OR upper(trim(b.company_name)) LIKE '%MGWAN%'
OR upper(trim(b.company_name)) LIKE '%MWLAN%'
OR upper(trim(b.company_name)) LIKE '%MLAN%'
OR upper(trim(b.company_name)) LIKE '%DDOS%'
OR trim(b.first_name) LIKE 'mss%'
THEN 10 ELSE 20 END,
a.to_locate_in_gis ='Y'
WHERE a.account_number <> b.account_no
WHEN NOT MATCHED THEN
INSERT (ne_slno, second_name, company_id, ne_type, ne_status, service_type_id)
VALUES (s_node_seq_nextval,
TRIM(b.first_name), TRIM(b.company_id),
TRIM(b.ci_type), TRIM(b.ci_status),
CASE
WHEN upper(trim(b.company_name)) LIKE '%MWAN%'
OR upper(trim(b.company_name)) LIKE '%MGWAN%'
OR upper(trim(b.company_name)) LIKE '%MWLAN%'
OR upper(trim(b.company_name)) LIKE '%MLAN%'
OR upper(trim(b.company_name)) LIKE '%DDOS%'
OR trim(b.first_name) LIKE 'mss%'
THEN 10 ELSE 20 END)
WHERE SUBSTR(b.first_name, 1, 1) != ' '
Все дело условие успеха, за исключением того, что указывало trim(b.first_name) like 'mss%'
У вас есть данные в таблице table1.first_name, которая начинается с «mss» (в нижнем регистре)? – Boneist
@Boneist Да, у него есть данные, такие как mss-testeronet-mai-rb и т. Д. Datas – peter
Какой результат вы получите, если вы это сделаете: 'select count (*) из таблицы1, где trim (b.first_name), например 'mss%';'? – Boneist