2016-11-07 1 views
1

Es gibt bereits mehrere Fragen und Lösungen für akzentunempfindliche Suche auf Stackoverflow, aber keiner von ihnen funktioniert für Codepage 1250 (Mitteleuropäische und osteuropäische Sprachen).Wie führe ich einen accent insensitive vergleichen in SQL Server für 1250 Codepage

How do I perform an accent insensitive compare (e with è, é, ê and ë) in SQL Server?

LINQ Where Ignore Accentuation and Case

Ignoring accents in SQL Server using LINQ to SQL

Suche anpassen es Accent Unempfindlich in SQL Server machen

Questions about accent insensitivity in SQL Server (Latin1_General_CI_AS)

Das Problem ist, dass Akzent insensitive Sortierung bidned ist auf einen bestimmten Codepages und das Ich vermisse die akzentunempfindliche Sortierung für die Codepage 1250 in MSDN documentation.

Ich muss die Sortierung der Spalte zu make Entity Framework working in accent insensitive way ändern.

Zum Beispiel, wenn ich eine Sortierung zu SQL_LATIN1_GENERAL_CP1_CI_AI ändern, wird c mit accute als c ohne accute (U + 0107) wegen falscher Codepage gewählt.

Wie löst man das?

Antwort

2
SELECT * 
FROM sys.fn_helpcollations() 
WHERE COLLATIONPROPERTY(name, 'CodePage') = 1250 
     AND description LIKE '%accent-insensitive%'; 

Gibt 264 Ergebnisse zur Auswahl.

Pflücken der erste

SELECT N'è' COLLATE Albanian_CI_AI 
UNION 
SELECT N'é' 
UNION 
SELECT N'ê' 
UNION 
SELECT N'ë' 

eine einzige Zeile zurückgibt, wie gewünscht (zeigt alle gleich Vergleich)

0

OK, so scheint es, dass der Link MSDN-Dokumentation für SQL Server 2008 verwende ich SQL Server 2014 , aber ich war für jede Sortierungs Dokumentation finden 2014.

aber die Lösung ist, um die Sortierungen von Server für meine Codepage Liste nicht in der Lage:

SELECT name, COLLATIONPROPERTY(name, 'CodePage') AS CodePage 
FROM fn_helpcollations() 
where COLLATIONPROPERTY(name, 'CodePage') = 1250 
ORDER BY name; 

Und ich kann sehen, es gibt eine undokumentierte Sortierung Czech_100_CI_AI , die für mich funktioniert. Heureka!

Verwandte Themen