2014-02-14 7 views
2

Таблица 1обновление SQL таблица

id name  uf  ibge 
1 GOIANIA  'GO'  null 
2 BRASILIA 'DF'  null 
3 TOCANTINS 'TO'  null 

Таблица 2

id  name   uf  ibge 
1 GOI**Â**NIA  'GO'  5208707 
2 BRAS**Í**LIA  'DF'  5300108 
3 TOCANTINOPOLIS 'TO'  1721208 

мне нужно обновить в таблице 1, поле ibge с помощью какой-то like в предложении к where связать description от city с кодом ibge.

Может ли кто-нибудь помочь? Очень благодарен!

+1

Извините, не могли бы вы предоставить более подробную информацию. И насколько я вижу, вы сможете сопоставлять записи по столбцу 'uf'. – adrian7

ответ

1

Предполагая, что вы можете присоединиться обе таблицы на uf поле, например, так:

UPDATE Table1 
    SET ibge = Table2.ibge 
    FROM 
    Table2 
    WHERE 
    Table1.uf = Table2.uf; 

Fiddle here

1

Попробуйте это ...

UPDATE T1 
SET T1.ibge = T2.ibge 
FROM Table1 T1 
INNER JOIN Table2 T2 
ON T1.id = T2.id 
+0

Кто отказался от этого ответа? Я действительно не понимаю. Я попробовал это на своем SQL Server. Оно работает. Кто бы ни забыл это, вероятно, не знает SQL. Кто бы вы ни были, пожалуйста, оставьте комментарий. Я в порядке, если ошибаюсь. Я стою исправлено. Но, пожалуйста, дайте лучший ответ. –

+1

То же самое здесь. Предположительно, downvoter фиксирует требование OP, чтобы сделать какое-то приближение или соответствие Regex к запатентованной кодировке на Table2 'name's. – StuartLC

+1

+ 1 вы, ребята, нисходящие не правы – Anri

0
UPDATE table1 tab1 SET ibge = (SELECT ibge FROM table2 tab2 WHERE tab1.name like (substring(tab2.name, 1, 3) || '%') LIMIT 1); 

Предполагая, что первые 3 символы одинаковы в имени поля для таблицы 1 и таблицы 2

Смежные вопросы