Pessoal é o seguinte, quero fazer um select dessa forma:
select * from base
where cidade not in (select chaCidade from tabCidade)
Só que eu quero ignorar acentos e as letras maísculas e mínusculas.
Alguem pode me ajudar?
Pessoal é o seguinte, quero fazer um select dessa forma:
select * from base
where cidade not in (select chaCidade from tabCidade)
Só que eu quero ignorar acentos e as letras maísculas e mínusculas.
Alguem pode me ajudar?
Aqui na Empresa cara, agente usa uma funçãozinha pra isso, não sei que banco vc usa mas ta ai a de oracle.
create or replace
FUNCTION "SEM_ACENTO" (TEXTO IN CLOB)
RETURN CLOB
IS
RETORNO CLOB;
BEGIN
SELECT UPPER(TRANSLATE( SUBSTR(TEXTO,1,4000) ,'áàâãäéèêëíìïóòôõöúùûüÁÀÂÃÄÉÈÊËÍÌÏÓÒÔÕÖÚÙÛÜçÇ','aaaaaeeeeiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcC')) INTO RETORNO FROM DUAL;
RETURN RETORNO;
END sem_acento;
Ai ficaria tipo assim eu esqueci a chamada de função no oracle tá kkkkk…
select * from base
where semacento(cidade) not in (select semacento(chaCidade) from tabCidade);
Falow.
Aqui na Empresa cara, agente usa uma funçãozinha pra isso, não sei que banco vc usa mas ta ai a de oracle.create or replace FUNCTION "SEM_ACENTO" (TEXTO IN CLOB) RETURN CLOB IS RETORNO CLOB; BEGIN SELECT UPPER(TRANSLATE( SUBSTR(TEXTO,1,4000) ,'áàâãäéèêëíìïóòôõöúùûüÁÀÂÃÄÉÈÊËÍÌÏÓÒÔÕÖÚÙÛÜçÇ','aaaaaeeeeiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcC')) INTO RETORNO FROM DUAL; RETURN RETORNO; END sem_acento;Amigo, utilizei uma função que achei do sql server, porém a consulta fica muito lenta, pois são cerca de 5600 linhas.
como posso melhor esse processo?USE [extranet_antigoatual] GO /****** Object: UserDefinedFunction [dbo].[remove_acento] Script Date: 01/27/2012 14:58:05 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER FUNCTION [dbo].[remove_acento](@Texto varchar(8000)) returns varchar(50) AS BEGIN declare @SemAcento varchar(50) select @SemAcento = replace(@Texto,'á','a') select @SemAcento = replace(@SemAcento,'à','a') select @SemAcento = replace(@SemAcento,'ã','a') select @SemAcento = replace(@SemAcento,'â','a') select @SemAcento = replace(@SemAcento,'é','e') select @SemAcento = replace(@SemAcento,'è','e') select @SemAcento = replace(@SemAcento,'ê','e') select @SemAcento = replace(@SemAcento,'í','i') select @SemAcento = replace(@SemAcento,'ì','i') select @SemAcento = replace(@SemAcento,'î','i') select @SemAcento = replace(@SemAcento,'ó','o') select @SemAcento = replace(@SemAcento,'ò','o') select @SemAcento = replace(@SemAcento,'ô','o') select @SemAcento = replace(@SemAcento,'õ','o') select @SemAcento = replace(@SemAcento,'ú','u') select @SemAcento = replace(@SemAcento,'ù','u') select @SemAcento = replace(@SemAcento,'û','u') select @SemAcento = replace(@SemAcento,'ü','u') select @SemAcento = replace(@SemAcento,'ç','c') return (UPPER(@SemAcento)) ENDAi ficaria tipo assim eu esqueci a chamada de função no oracle tá kkkkk…
select * from base where semacento(cidade) not in (select semacento(chaCidade) from tabCidade);Falow.
O Sql Server tem o recurso de collations.
Com ela você pode dizer que campos de texto são case-insensitive e accent-insensitive.
Ou seja, ele já ignora essas diferenças entre acento e “caixa” automaticamente.
O Sql Server tem o recurso de collations.Com ela você pode dizer que campos de texto são case-insensitive e accent-insensitive.
Ou seja, ele já ignora essas diferenças entre acento e “caixa” automaticamente.
é possível aplicar aos duas collations ao mesmo tempo?
att