Como achar nomes abreviados
15/02/2007
0
Olá pessoal, sou novo aqui no fórum, e estou começando a pegar SQL agora.
Estou com uma tarefa aqui, que eu tenho que achar os nomes cadastrados que estão abreviados no sistema. como eu poderia estar procurando isso??
me disseram aqui que tem um comando pra isso. acho meio difícil, mas alguém sabe que comando é esse? ou qual o melhor caminho pra eu achar esse registros??
abraços
Estou com uma tarefa aqui, que eu tenho que achar os nomes cadastrados que estão abreviados no sistema. como eu poderia estar procurando isso??
me disseram aqui que tem um comando pra isso. acho meio difícil, mas alguém sabe que comando é esse? ou qual o melhor caminho pra eu achar esse registros??
abraços
Digowars
Curtir tópico
+ 0
Responder
Posts
28/09/2015
Flavio
Leia sobre CHARINDEX e PATINDEX no Sql Server
ex.: Suponha o campo NOME com 50 mil registros e você precise encontrar nomes abreviados.
select NOME from TABELA
where CHARINDEX(' A ', NOME) > 0
Retorna todos os nomes que tiverem uma letra A maiúscula solta no meio do nome, ou seja, com espaços antes e depois da letra A. Obviamente existe um alfabeto inteiro, a título de exmplo, se tiver ponto antes ou depois da letra A e que esteja abreviado, não teremos resultado com o script acima agora imagine que existem uma infinidade de caracteres para tratar. Para casos complexos PATINDEX é ideal. Existem várias regras para tentar encontrar nomes abreviados mas nós dificilmente, a não ser que sejamos muito NERDs, conseguiremos pensar e codificar todas elas. Mas se você for um NERD, recomendo estudar CHARINDEX, PATINDEX e funções de manipulação de strings do sql server que podem ser utilizadas em conjunto com CHARINDEX e PATINDEX para criar regras mais complexas, veja algumas funções: http://bit.ly/1Rbip6r
ex.: Suponha o campo NOME com 50 mil registros e você precise encontrar nomes abreviados.
select NOME from TABELA
where CHARINDEX(' A ', NOME) > 0
Retorna todos os nomes que tiverem uma letra A maiúscula solta no meio do nome, ou seja, com espaços antes e depois da letra A. Obviamente existe um alfabeto inteiro, a título de exmplo, se tiver ponto antes ou depois da letra A e que esteja abreviado, não teremos resultado com o script acima agora imagine que existem uma infinidade de caracteres para tratar. Para casos complexos PATINDEX é ideal. Existem várias regras para tentar encontrar nomes abreviados mas nós dificilmente, a não ser que sejamos muito NERDs, conseguiremos pensar e codificar todas elas. Mas se você for um NERD, recomendo estudar CHARINDEX, PATINDEX e funções de manipulação de strings do sql server que podem ser utilizadas em conjunto com CHARINDEX e PATINDEX para criar regras mais complexas, veja algumas funções: http://bit.ly/1Rbip6r
Responder
Clique aqui para fazer login e interagir na Comunidade :)