20th Jul 2022 5 minutos de leitura Como remover caracteres de lixo em SQL Ignacio L. Bisso erros comuns em sql qualidade de dados como fazer em sql noções básicas de sql Índice A importância da padronização de strings em seu banco de dados Resolução de problemas com funções de SQL String Funções SQL para remoção de caracteres invisíveis e indesejáveis Cordas de força: Funções de cordas SQL aninhadas Saiba mais sobre as funções SQL String Os caracteres indesejados nos dados de texto podem ser um pouco chatos, mas há uma maneira fácil de consertá-los. Role para baixo para aprender como remover caracteres indesejados em SQL da maneira mais fácil! Às vezes, encontraremos caracteres indesejados dentro de nossos dados de string porque nossas consultas SQL não funcionaram como esperado. Além disso, estes caracteres extras podem às vezes ser invisíveis, o que realmente complica as coisas. Neste artigo, vamos examinar algumas funções SQL relacionadas a strings que podem lidar com caracteres indesejados visíveis ou não! A importância da padronização de strings em seu banco de dados Quando trabalhamos com dados povoados ou carregados como texto livre, a qualidade dos dados é muitas vezes bastante ruim. Caracteres indesejados podem prejudicar seriamente a qualidade de seus dados e tornar mais difícil a análise das informações coletadas. Assim, é importante entender como você pode usar as funções de string SQL para corrigir estes problemas comuns para que você possa limpar seu banco de dados. Como remover caracteres de lixo em SQL? Comecemos explorando as funções de aparo e comprimento SQL. Resolução de problemas com funções de SQL String Para explicar como resolver problemas com caracteres indesejados, trabalharemos com um simples banco de dados de cuidados de saúde. Imagine que temos um médico que armazena todos os dados de seus pacientes em uma única tabela. A tabela contém o nome completo do paciente, a data da visita, o diagnóstico do médico, o tratamento sugerido e quaisquer medicamentos que foram prescritos. Toda vez que um paciente visita seu consultório, o médico cria um novo registro. Ele digita manualmente suas anotações no banco de dados, de modo que a qualidade dos dados ocasionalmente é ruim. Full_Name date diagnostic treatment Drugs_in_receipt John Smith ’03/04/2016′ Flu rest “aspirin, paracetamol” Mary Deep ’10/11/2016′ Food Poisoning Rest & diet “penicillin,paracetamol” Agnes Jason ’03/12/2016′ flu rest “aspirin, paracetamol” Johnny SMITH ’15/03/2017′ Food Poisoned Rest & diet “penicillin,paracetamol” AGNES Jason ’19/072017′ angina Rest and don’t speak “amoxicillin” Peter Duckerz ’10/10/2017′ Flu Rest “paracetamol” Funções SQL para remoção de caracteres invisíveis e indesejáveis Em alguns casos, uma cadeia de texto pode ter caracteres indesejados, tais como espaços em branco, aspas, vírgulas, ou mesmo "|" separadores. Estes podem estar em um ou ambos os lados da cadeia de caracteres. Podemos remover esses caracteres indesejados usando as funções SQL TRIM, SQL LTRIM, e SQL RTRIM. Eles são muito semelhantes e estão explicados na tabela a seguir: Function Parameters Behavior LTRIM A string and a specific character Removes the specified character from the left side only RTRIM A string and a specific character Removes the specified character from the right side only TRIM A string and a specific character Removes the specified character from both sides Vamos tentar estas funções, começando com LENGTH. Como remover caracteres indesejados em SQL usando-as? Se você examinar a tabela original, você notará que algumas entradas sob a coluna de diagnóstico têm alguns caracteres indesejados, tais como espaços desnecessários no início. Mas também há alguns espaços escondidos após cada entrada. Para corrigir isso, começaremos contando o número de caracteres nas cadeias de diagnóstico usando a função LENGTH. Como os espaços em branco não são caracteres visíveis, usamos colchetes angulares para nos mostrar onde estão os espaços extras (se houver). Vamos ver como a função SQL LENGTH funciona nesta consulta: SELECT diagnostic as real_diagnostic, length(diagnostic) as field_length, '<' || diagnostic || '>' as delimited_diagnostic FROM patient_data real_diagnostic field_length delimited_diagnostic Flu 3 <Flu> Food Poisoning 14 <Food Poisoning> flu 4 < flu> Food Poisoned 15 < Food Poisoned> angina 6 <angina> Flu 4 < Flu> Podemos ver que vários registros têm caracteres indesejados, ou seja, espaços desnecessários. Para "gripe", o comprimento é 4 ao invés de 3, e o campo delimitado mostra o espaço em branco no início. Uma consulta adequada corrigirá este problema e removerá o espaço desnecessário. Vamos em frente e vamos fazer isso agora! SELECT diagnostic as real_diagnostic, trim(diagnostic) as trimmed_diagnostic FROM patient_data real_diagnostic trimmed_diagnostic Flu Flu Food Poisoning Food Poisoning flu flu Food Poisoned Food Poisoned angina angina Flu Flu Cordas de força: Funções de cordas SQL aninhadas Vamos supor que nosso médico queira saber quantos pacientes foram diagnosticados com cada uma das doenças na coluna diagnostic. Usaríamos a seguinte consulta para obter esta informação: SELECT diagnostic, count(*) FROM patient_data GROUP BY diagnostic diagnostic count(*) Flu 1 Food Poisoning 1 flu 1 food poisoning 1 angina 1 Flu 1 Como podemos ver, o resultado não é o que esperávamos. A mesma doença está aparecendo várias vezes porque o médico não foi consistente com sua digitação. Um diagnóstico de gripe aparece como "gripe", "gripe", e "gripe". Sabemos que eles são os mesmos, mas o motor do banco de dados os vê como três coisas diferentes. Temos as habilidades para corrigir esta consulta e obter o resultado que queremos. Podemos usar a mesma expressão aninhada para nos livrarmos dos caracteres indesejados (espaços extras) e eliminar os erros de capitalização. Eis como ela se apresenta: SELECT lower(trim(diagnostic)), count(*) FROM patient_data GROUP BY lower(trim(diagnostic)) diagnostic count(*) flu 3 food poisoning 2 angina 1 Na programação, é realmente comum aninhar funções, ou chamar uma função de dentro de outra função para ser usada como parâmetro. Isto é o que fizemos no exemplo anterior. Saiba mais sobre as funções SQL String Neste artigo, cobrimos as importantes funções de string SQL TRIM e LENGTH para aprender como remover caracteres de lixo em SQL. Se você quiser detectar caracteres ocultos ou indesejados como parte de um diagnóstico inicial, use LENGTH. Depois, use TRIM para se livrar de caracteres indesejados. Também discutimos como você pode aninhar funções SQL, que é uma técnica poderosa na programação. Se você estiver ansioso para aprender mais sobre as funções das strings SQL, verifique nosso Funções Comuns em SQL curso. Experimente-o gratuitamente hoje mesmo! Tags: erros comuns em sql qualidade de dados como fazer em sql noções básicas de sql