Selecionar registros com caracteres especiais utilizando SQL

 

Caso você tenha a necessidade de selecionar registros do seu banco de dados que possuam num determinado campo acentos ou outros caracteres especiais, você pode resolver este problema utilizando uma expressão regular. Vamos ver exemplos de como fazer isso utilizando SQL Server e MySQL

Vamos começar com o SQL Server. Veja o exemplo a seguir:

 SELECT   * from tabela where campo LIKE %[^0-9a-zA-Z ]%

No exemplo acima, foi feito um like no campo para selecionar registros de acordo com expressão regular que está entre chaves. A expressão regular seleciona tudo o que NÃO é número, caracteres de A a Z ou espaços em branco.

As expressões regulares podem ser usadas em outras situações. Imagine por exemplo que você quer selecionar os registros de um campo código onde o código comece com o número 5 e tenha 2 digítos depois do 5. Você poderia resolver este problema utilizando a seguinte consulta:

SELECT * FROM tabela WHERE campo LIKE "5[0-9][0-9]"

Agora vamos ver os mesmos exemplos no banco de dados MySQL. A consulta para selecionar registros com acentuação ou caracteres especiais ficaria assim:

SELECT * from tabela where campo REGEXP '[^0-9a-zA-Z ]';

E a consulta que retorna registros que comecem com 5 e tenham 2 dígitos ficaria desta forma:

SELECT * FROM tabela WHERE campo REGEXP '9[0-9][0-9]';

Expressões regulares é um assunto extenso e muito interessante. Para saber mais, abaixo segue um pequeno tutorial.

https://tableless.com.br/o-basico-sobre-expressoes-regulares/

 

Quer conferir mais dicas sobre banco de dados? Clique aqui e veja mais dicas!
BINS - Blog SQL

 

Conteúdo sobre banco de dados sem complicação!

MySQL - Referência Rápida

 

SQL Server - Referência Rápida

 

SQL vs Mongo

 

 

 

Veja outros conteúdos que podem ser de seu interesse