-- Inserção dos dados a partir da consulta fornecida
INSERT INTO frases_opt (id_titulo, titulo)
SELECT
    f.id_titulo,
    REPLACE(
        TRIM(
            REPLACE(
                GROUP_CONCAT(
                    CONCAT(
			CASE WHEN ordem = 1 THEN CASE WHEN t.caracter_antes <> CHAR(8) THEN t.caracter_antes ELSE '' END ELSE t.caracter_antes END,
                        CASE
                            WHEN tt.nome_tipo_token = 'sigla' THEN UPPER(t.acentuada)
                            WHEN tt.nome_tipo_token IN ('preposicao', 'conjuncao') THEN LOWER(t.acentuada)
                            ELSE CONCAT(
                                UPPER(LEFT(t.acentuada, 1)),
                                LOWER(SUBSTRING(t.acentuada, 2))
                            )
                        END,
                        t.caracter_depois
                    ) ORDER BY ordem SEPARATOR ''
                ),
                CONCAT(' ', CHAR(8)),
                ''
            )
        ),
        '  ',
        ' '
    ) AS titulo
FROM frases f
JOIN tokens t ON f.id_token = t.id_chave_token
LEFT JOIN tipos_tokens tt ON t.id_tipo_token_spaCy = tt.id_chave_tipo_token
GROUP BY f.id_titulo;

