Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Gleice

Acento gráfico

Recommended Posts

Olá Pessoal!Tenho uma aplicação em ColdFusion e utilizo o SQLServer 2000 como banco.O meu problema é na hora de realizar uma pesquisa através do nome. Ele só retorna a busca se o nome estiver exatamente como foi cadastrado. Gostaria de saber se existe alguma forma de por exemplo, ao digitar Márcia, o banco me retornar tudo:'Márcia''Marcia''Márcia Regina''Mirian Márcia'etc...Aguardo retorno. Obrigada.Abraços,

Compartilhar este post


Link para o post
Compartilhar em outros sites

select nome from tabela where nome like '%MARCIA%'

este comando vai trazer todas as MARCIAs sem acento. MARCIA REGINA ou MIRIAM MARCIA.

 

select nome from tabela where nome like '%MARCIA%'
este comando vai trazer todas as MARCIAs sem acento. MARCIA REGINA ou MIRIAM MARCIA.

 

E pode trazer das duas formas de uma vez

select nome from tabela where nome like '%MARCIA%' or nome like '%MÁRCIA%'

pode também fazer o seguinte, para MARCIA se igual a marcia

select nome from tabela where upper(nome) like '%MARCIA%' or upper(nome) like '%MÁRCIA%'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Camarada NaPraia,

 

Me parece que o que a Gleice que é justamente não ter de se preocupar com os acentos.

 

Seria informado Marcia e retornasse todos os registros com e sem acentos.

 

Pensei nisso:

DECLARE @TMP TABLE (NOME VARCHAR(20))INSERT INTO @TMP (NOME) VALUES ('Márcia')INSERT INTO @TMP (NOME) VALUES ('Marcia')INSERT INTO @TMP (NOME) VALUES ('Márcia Regina')INSERT INTO @TMP (NOME) VALUES ('Mirian Márcia')SELECT * FROM @TMPWHERE NOME LIKE '%M[Aá]RCIA%'
Que é basicamente a sua sugestão com o [] seguido das letras acentuadas mas acho que fica dificil de implementar e pouco pratico.

 

Acho que têm com ignorar os acentos na pesquisa mas não me recordo como. http://forum.imasters.com.br/public/style_emoticons/default/blush.gif http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

 

Vou dar um pesquisada e vamos esperar que alguém do fórum se manifeste com outra sugestão.

 

E NaPraia valeu a participação e contamos com vossa presença para outros debates.

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

falai galega

 

tem tb. o esquema dos COLLATE pra ajudar

 

Diferenciação de maiúsculas e minúsculas

CS - Case Sensitive

CI - Case Incensitive

Acentuadas ou não

AS - Accent Sencitive

AI - Accent Incensitive

emprestando a tabela de exemplo do jothaz:

DECLARE @TMP TABLE (NOME VARCHAR(20))INSERT INTO @TMP (NOME) VALUES ('Márcia')INSERT INTO @TMP (NOME) VALUES ('Marcia')INSERT INTO @TMP (NOME) VALUES ('Márcia Regina')INSERT INTO @TMP (NOME) VALUES ('Mirian Márcia')INSERT INTO @TMP (NOME) VALUES ('MARCIA')
OBS.: Adicionei um registro no final com MARCIA tudo em maiúsculo para mais uma opção no cenário

 

 

Exemplo 1:

usando SQL_Latin1_General_CP1_CS_AS - Case Sensitive e Accent Sencitive: (validando maiúsculas/minúsculas e validando acentos)

SELECT * FROM @TMP WHERE NOME LIKE '%Marcia%' COLLATE SQL_Latin1_General_CP1_CS_AS
retorna somente 1 registro:

NOME

--------------------

Marcia

 

(1 row(s) affected)

Exemplo 2:

usando SQL_Latin1_General_CP1_CI_AS - Case Incensitive e Accent Sencitive: (NÃO validando maiúsculas/minúsculas e validando acentos)

SELECT * FROM @TMP WHERE NOME LIKE '%Marcia%' COLLATE SQL_Latin1_General_CP1_CI_AS
retorna 2 registros:

NOME

--------------------

Marcia

MARCIA

 

(2 row(s) affected)

Exemplo 3:

usando SQL_Latin1_General_CP1_CI_AI - Case Incensitivee Accent Incensitive: (NÃO validando maiúsculas/minúsculas e NÃO validando acentos)

SELECT * FROM @TMP WHERE NOME LIKE '%Marcia%' COLLATE SQL_Latin1_General_CP1_CI_AI
retorna 5 registros (neste nosso exemplo todos):

NOME

--------------------

Márcia

Marcia

Márcia Regina

Mirian Márcia

MARCIA

 

(5 row(s) affected)

bom fds

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala mestre eriva!

 

Tudo na paz?

 

Era o danado do COLLATE q eu não me lembrava! :P

 

Como sempre post claro, conciso e confiável! http://forum.imasters.com.br/public/style_emoticons/default/worshippy.gif

 

Gleice acho q deu uma luz!?

 

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

pô, que legal, eu não conhecia esse comando COLLATE

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza magavilha :D

abraços

 

Srs. Jothaz e Eriva_br

 

Muito obrigada pela força.

 

Deu certo!!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Foi só adicionar 'COLLATE SQL_Latin1_General_CP1_CI_AI' daí funcionou.

 

Um grande abraço para vcs. http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

Gleice

pô, que legal, eu não conhecia esse comando COLLATE

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.