2009-08-12 17 views
0

Ich habe einige Inhalte in unserer Datenbank mit (für unsere Sprache) 'seltsame' Zeichen.String vergleichen mit 'seltsame Zeichen' in SqlServer

Zum Beispiel:

Å 

Wenn in SQL Server mit dem Buchstaben A die like Anweisung, diese liefert kein Ergebnis, weil die Å keine A ist.

Gibt es eine Möglichkeit in SqlServer die Å als E (und die é als ‚e‘ usw.) zu behandeln?

Antwort

4

Meinst du "Å als A" oder "Å als E"?

Zum ersten können Sie die Sortierung coerce unempfindlich Akzent

SELECT 1 WHERE 'Å' = 'A' --No 
SELECT 1 WHERE 'Å' COLLATE LATIN1_General_CI_AI = 'A' --Yes 

SELECT 1 WHERE 'é' = 'e' --No 
SELECT 1 WHERE 'é' COLLATE LATIN1_General_CI_AI = 'e' --Yes 
+0

Danke, das funktioniert. Haben Sie eine Idee, ob dies auch in Linq zu Entitäten möglich ist? – Michel

+0

Gern geschehen. Tut mir leid, ich nicht. – gbn

+0

hat auch nichts herausgefunden, einen SP mit Ihrem Code erstellt. Funktioniert super. – Michel

2

Sie können eine COLLATE-Klausel in der Abfrage enthalten einen Akzent-insensitive Sortierung angeben:

SELECT * 
FROM your_table 
WHERE your_column LIKE 'A%' COLLATE Latin1_General_CI_AI 

Sie über Sie müssen eine geeignete Sortierung für Ihre Sprache verwenden. Die eingebaute fn_helpcollations Funktion gibt Ihnen eine Liste aller unterstützten Sortierungen: