Articles

SQLShack (Português)

Posted by admin

este artigo explora comandos RegEx de T-SQL no servidor de SQL para realizar a pesquisa de dados usando várias condições.

introdução

armazenamos dados em múltiplos formatos ou tipos de dados nas tabelas de servidores SQL. Suponha que você tem uma coluna de dados que contém dados de cadeia em formato alfanumérico. Nós usamos como operador lógico para pesquisar caracteres específicos na string e recuperar o resultado., Por exemplo, na tabela de Funcionários, queremos Filtrar resultados e obter o único empregado cujo nome começa com o caráter A.

usamos expressões regulares para definir padrões específicos em T-SQL em um operador similar e filtrar resultados com base em condições específicas. Nós também chamamos essas expressões regulares como funções RegEx T-SQL. Neste artigo, usaremos o termo funções RegEx T-SQL para expressões regulares.,

podemos ter vários tipos de expressões regulares:

  • Alfabéticos RegEx
  • Numeric RegEx
  • em Caso de Sensibilidade RegEx
  • Caracteres Especiais RegEx
  • RegEx para Excluir Caracteres

Pré-requisito

neste artigo, iremos utilizar os dados de exemplo AdventureWorks., Execute the following query, and we get all product descriptions:

1
2

SELECT
FROM ..;

Let’s explore T-SQL RegEx in the following examples.,

exemplo 1: filtrar os resultados para a descrição começando com o caráter A ou L

suponha que queremos obter a descrição do produto começando com o caráter A ou L. podemos usar o formato % na função similar.

Execute a consulta a seguir e observe a saída contém linhas com o primeiro caractere de Uma ou L:

1
2
3

SELECIONE
a PARTIR de ..,
onde like ‘%’

Exemplo 2: resultados de Filtro para a descrição com a primeira personagem e, segundo, de caráter L

No exemplo anterior, nós nos resultados filtrados para iniciar o personagem, ou L. Suponha que queremos iniciar caracteres de descrições AL. Podemos usar T-SQL RegEx % no operador similar.,

1
2
3

SELECT
FROM ..
where like ‘%’

In the output, you can we get only records with first character A and second characters L.

We can specify multiple characters as well to filter records., The following query gives results for starting characters together:

1
2
3

SELECT
FROM ..,
onde like ‘%’

Exemplo 3: resultados de Filtro para a descrição e o caractere inicial entre A e D

No exemplo anterior, nós especificado um determinado caractere inicial para filtrar os resultados. Podemos especificar o intervalo de caracteres usando as funções%.,

The following query gives results for description starting character from A and D:

1
2
3

SELECT
FROM ..
where like ‘%’

Similarly, we can specify multiple conditions for each character., Por exemplo, o abaixo consulta as seguintes pesquisas:

  • O primeiro caractere deve ser de Um e D alfabetos
  • O segundo caractere deve ser a partir de F e L alfabeto
1
2
3

SELECIONE
a PARTIR de ..,
onde like ‘%’

Na saída, você pode ver que tanto o conjunto de resultados satisfaz ambas as condições.

exemplo 4: resultados do filtro para descrição e carácter final entre a E D

nos exemplos anteriores, filtrámos os dados para os caracteres iniciais. Podemos querer filtrar para o personagem da posição final também. nos exemplos anteriores, note a posição do operador percentual ( % ). Especificámos um carácter percentual no final dos caracteres de pesquisa.,

1
2
3

SELECT
FROM ..
where like ‘%’

In the following query, we changed the position of percentage character at the beginning on search character., Ele olha para os caracteres com a seguinte condição:

  • caractere Final deve ser a de G e S
1
2
3

SELECIONE
a PARTIR de ..
onde like ‘%’

Na saída, temos o personagem que satisfaz a nossa condição de pesquisa.,

exemplo 5: resultados do filtro para a descrição letras iniciais AF e caracteres finais entre S

vamos torná-lo um pouco complexo., Queremos procurar, utilizando as seguintes condições:

  • caractere Inicial deve ser Um (primeiro) e F (segundo)
  • caractere Final deve ser S

Execute a seguinte consulta e, na saída, podemos ver que satisfaz a nossa necessidade:

1
2
3

SELECIONE
a PARTIR de ..,
onde like ‘%’

Exemplo 6: resultados de Filtro para a descrição de partida letras excluindo a para T

No exemplo a seguir, nós não queremos que o primeiro caractere de saída de linhas de a a T., podemos excluir caracteres, utilizando o formato de operador Like.,

1
2
3

SELECT
FROM ..
where like ‘%’

In the output, we do not have any first characters from A to T.,r registos utilizando as seguintes condições:

  • O primeiro caractere deve ser de R e S de caracteres –
  • Nós podemos ter qualquer combinação após o primeiro caractere %
  • exigimos que o P de caracteres –
  • Ele deve ser seguido por um ou –
  • pode ter qualquer outro personagem após a condição anterior- %
1
2
3

SELECIONE
a PARTIR de .,.
onde like ‘%%’

Exemplo 8: sensível a Maiúsculas e minúsculas pesquisa usando T-SQL funções RegEx

Por padrão, não diferencia maiúsculas de minúsculas resultados. Por exemplo, as seguintes consultas devolvem o mesmo conjunto de resultados:

podemos realizar uma pesquisa com distinção de maiúsculas usando as seguintes duas formas:

  1. configuração de colação de bases de dados: cada base de dados no servidor SQL tem uma colação., Carregue com o botão direito na base de dados e na página de propriedades, poderá ver a colação

    temos o Sql_latin1_geral_cp1_ci_ as executa um comportamento insensível a maiúsculas para a base de dados. Podemos mudar esta colação para uma colação com distinção de maiúsculas. Não é uma solução simples. Pode criar problemas para as suas consultas. Não é uma forma recomendada, a menos que você exija explicitamente colação com distinção de maiúsculas.

    Podemos usar colação em coluna com funções RegEx de T-SQL para realizar uma pesquisa com distinção de maiúsculas.,

    1
    2
    3
    4
    5
    6
    7

    Criar tabela de Caracteres
    (Alfabeto char(1)
    )
    Ir
    Inserir valores de Caracteres (‘A’)
    Inserir valores de Caracteres (‘a’)
    Ir

    Na tabela, temos a letra em maiúsculas e minúsculas., If we run the following select statement, it returns both uppercase and lowercase:

    1
    2

    SELECT * from Characters
    where Alphabet like ‘%’

    Suppose we want to filter the uppercase letter in the result., We can use column collation as per the following query:

    1
    2

    select * from Characters
    where Alphabet COLLATE Latin1_General_BIN like ‘%’

    It returns uppercase letter A in the output.,e119a2″>

    da mesma forma, a consulta a seguir retorna letra minúscula na saída:

    1
    2

    select * from Caracteres
    onde Alfabeto AGRUPAR Latin1_General_BIN like ‘%’

  2. podemos usar o T-SQL RegEx função de encontrar, tanto maiúsculas e minúsculas caracteres na saída.,

    Nós queremos a seguinte saída:

    • O primeiro caractere deve ser maiúscula caractere C
    • O segundo caractere deve ser em minúsculas caracteres h
    • o Resto dos personagens pode ser em qualquer caso de letra
    1
    2
    3

    SELECIONE
    a PARTIR de ..,
    onde AGRUPAR Latin1_General_BIN like ‘%’

Exemplo 9: A utilização de T-SQL Regex para Encontrar Linhas de Texto que Contêm um Número

podemos encontrar uma linha que contém o número bem no texto. Por exemplo, queremos filtrar os resultados com linhas que contêm o número 0 a 9 no início.

exemplo 10: usar o Regex T-SQL para encontrar ID válidos de E-mail

vamos explorar um cenário prático da função RegEX., Temos uma mesa de clientes, que contém o endereço de E-mail do cliente. Queremos identificar o endereço de E-mail válido a partir dos dados do Usuário. Por vezes, os utilizadores cometem erros de erro de erro e introduzem @@ em vez de @ character.

primeiro, crie a tabela de amostras e insira algum endereço de E-mail nela em diferentes formatos.

Execute a seguinte instrução de selecção com a função RegEx de T-SQL e elimine os endereços de E-mail inválidos.,

1
2

Select * from TSQLREGEX where email
LIKE ‘%%%’

We do not have following invalid email address in the list.

  • ABC@@gmail.com
  • ABC.DFG.LKF#@gmail.,com

Conclusion

neste artigo, explorámos as funções RegEx de T-SQL para realizar uma pesquisa usando várias condições. Você deve estar ciente destes para pesquisar com base em requisitos específicos.,

  • Autor
  • Posts Recentes
Como uma certificação MCSA e Microsoft Certified Trainer em Gurgaon, na Índia, com 13 anos de experiência, Rajendra trabalha para uma variedade de empresas de grande porte com foco em otimização de desempenho, monitoramento, alta disponibilidade e recuperação de desastres estratégias e implementação., Ele é o autor de centenas de artigos autoritários no SQL Server, Azure, MySQL, Linux, Power BI, Performance tuning, AWS/Amazon RDS, Git, e tecnologias relacionadas que foram vistas por mais de 10m leitores até à data. ele é o criador de uma das maiores coleções online gratuitas de artigos sobre um único tópico, com sua série de 50 partes no servidor SQL sempre em grupos de disponibilidade. Com base em sua contribuição para a comunidade de servidores SQL, ele foi reconhecido com vários prêmios, incluindo o prestigiado “melhor autor do ano” continuamente em 2020 e 2021 no SQLShack.,Raj está sempre interessado em novos desafios, então se você precisar de Ajuda em qualquer assunto coberto em seus escritos, ele pode ser alcançado em rajendra.gupta16@gmail.,com
Ver todos os posts por Rajendra Gupta

posts mais Recentes por Rajendra Gupta (ver todas)
  • tempos limite de Sessão no SQL Server Sempre Em Grupos de Disponibilidade – fevereiro 8, 2021
  • Realização de pequenas e principais atualizações de versão para o AWS RDS para SQL Server – 29 de janeiro de 2021
  • a Implantação da AWS RDS PostgreSQL instâncias – 27 de janeiro de 2021

Leave A Comment