es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para eliminar la última parte después de la última coma y convertirla en mayúsculas, puedes usar el siguiente comando SQL:

    UPDATE address_table
    SET field_address = initcap(regexp_replace(field_address, ', [^,]+$', '')) || upper(regexp_replace(field_address, '^.*,(.*)$', '\1'))
    

    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ón initcap 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 tabla address_table.

Comments are closed.