Nach bestimmten Sonderzeichen in String suchen

02/02/2010 - 07:57 von Dietmar | Report spam
Hallo Zusammen,

beim einem Import den ich nicht beeinflussen kann werden Datensàtze mit ³ (=
hochgestellte 3) statt ü in die DB geschrieben.
Würde gerne nach den Strings suchen die das Zeichen 179 enthalten. Mit

select * from tabelle where feld
like '%' + char(179) + '%'

finde ich alle Strings die eine 3 oder eine ³ haben.

Wie kann ich diese Datensàtze suchen?

Danke im voraus
Deitmar
 

Lesen sie die antworten

#1 Christoph Muthmann
02/02/2010 - 14:45 | Warnen spam
Dietmar wrote:
Hallo Zusammen,

beim einem Import den ich nicht beeinflussen kann werden Datensàtze
mit ³ (= hochgestellte 3) statt ü in die DB geschrieben.
Würde gerne nach den Strings suchen die das Zeichen 179 enthalten. Mit

select * from tabelle where
feld like '%' + char(179) + '%'

finde ich alle Strings die eine 3 oder eine ³ haben.

Wie kann ich diese Datensàtze suchen?



Hallo Dietmar,
anscheinend schlàgt bei Dir die Collation beim Vergleich zu.

Probier mal das hier aus, da es einen Vergleich auf Binàr-Ebene macht:
declare @a as table(i int, daten varchar(100));

insert into @a(i, daten) values(1,'Datensàtze mit ³');
insert into @a(i, daten) values(2,'Datensàtze mit 3');
insert into @a(i, daten) values(3,'Datensàtze mit 2');

Select *
from @a;

SELECT *
FROM @a
WHERE CAST(daten AS VARBINARY(100)) =
CAST(replace(daten,char(179),char(179)) AS VARBINARY(100))
and daten like '%' + char(179) + '%'



Einen schönen Tag noch,
Christoph
Microsoft SQL Server MVP
http://www.insidesql.org

Ähnliche fragen