Cómo usar INTICAP y dejar la última parte en MAYÚSCULAS en PostgreSQL 11.
Tengo una tabla con direcciones todas en mayúsculas, pero estoy tratando de formatearla así:
145 WELLBEING STREET, PARADE, LONDON, PP1 5PP
145 Wellbeing Street, Parade, London, PP1 5PP
¿Cómo puedo trabajar con eso? He intentado convertir todo usando initcap:
UPDATE address_table
SET field_address = initcap(field_address)
Y luego seleccionar la última parte y convertirla en mayúsculas:
UPDATE address_table
SET field_address = upper(regexp_replace(field_address , ''^.*,'', '''))
Así que pensé en concatenar, pero aún tengo la última parte en initcap…
También he intentado con:
SELECT field_address || upper(trim(reverse(split_part(reverse(field_address), '','', 1)))) FROM address_table
pero los resultados que obtuve son así:
Southridge, Newbury Hill, Hampstead Norreys, Thatcham, Rg18 0trRG18 0TR
¿Cómo puedo eliminar la última parte después de la última coma para convertirla en mayúsculas?
davy.ai
Para eliminar la última parte después de la última coma y convertirla en mayúsculas, puedes usar el siguiente comando SQL:
Este comando primero utiliza la función
regexp_replace
para eliminar la última parte después de la última coma (incluyendo la coma en sí misma), y luego aplica la funcióninitcap
para capitalizar las partes restantes de la dirección.Después de eso, concatena la dirección capitalizada con el resultado de otra función
regexp_replace
que extrae la última parte eliminada y la convierte en mayúsculas.Esto debería darte la dirección formateada deseada en la columna
field_address
de tu tablaaddress_table
.