Eu tenho abaixo de 2 tabelas.
old_name old_value
Tom1 100
Kate1 80
Jim1 70
new_name new_value
Tom2 70
Kate2 100
Jim2 80
Eu quero fazer uma nova tabela parecer
old_name old_value new_name new_value
Tom1 100 Tom2 70
Kate1 80 Kate2 100
Jim1 70 Jim2 80
Como fazer isso no Postgres?
Use alguma correspondência de padrão/manipulação de string na
JOIN
condição. Eu usoleft()
no meu exemplo:Isso pressupõe que todos os nomes tenham exatamente um caractere pendente (dígito ou não, não importa).
left(string, -1)
(com um parâmetro de comprimento negativo) apara efetivamente a última letra destring
. Deve ser mais rápido. Requer Postgres 9.1 .Na versão mais antiga, substitua por
substring()
ou uma das muitas outras maneiras ...