Я пытаюсь использовать CollationInfo.Comparer из SMO, чтобы мой код С# сортировался как SQL Server. Я получил правильную сортировку, но мои элементы по-прежнему не сортируются правильно.
var collationInfo = CollationInfo.Collations.Single(x => x.Name == "SQL_Latin1_General_CP1_CS_AS") as CollationInfo;
var comparer = collationInfo.Comparer;
int c = comparer.Compare("Tri-Valley L", "Trimble L");
В этом случае c возвращает '1', указывая на то, что Tri-Valley L будет идти после Trimble.
Однако этот код в SQL Server
DECLARE @T TABLE
(
Name VARCHAR(20)
)
INSERT INTO @T
(
Name
)
VALUES('Tri-Valley L'),
('Trimble L')
SELECT
Name
FROM
@T
ORDER BY Name
Возвращает Tri-Valley раньше Trimble.
Сопоставление сравнивает вещи просто неправильно, или я делаю что-то не так?
ORDER BY Name COLLATE SQL_Latin1_General_CP1_CS_AS
, будет ли она по-прежнему сортироваться в том же порядке? - person Simon MᶜKenzie   schedule 20.07.2012