Есть ли способ легко сортировать в SQL Server 2005, игнорируя дефисы в строковом поле? В настоящее время мне нужно выполнить REPLACE (fieldname, '-', '') или функцию для удаления дефиса в предложении сортировки. Я надеялся, что есть флаг, который я могу установить в верхней части хранимой процедуры или что-то в этом роде.
Доступ и сортировка по умолчанию GridView, похоже, игнорируют шумиху в строках.





Я узнал что-то новое, как и ты
Я считаю, что разница между "Строковая сортировка" и "Сортировка слов" (игнорирует дефис)
Примерная разница между сортировкой WORD и сортировкой STRING http://andrusdevelopment.blogspot.com/2007/10/string-sort-vs-word-sort-in-net.html
От Microsoft http://support.microsoft.com/kb/322112
For example, if you are using the SQL collation "SQL_Latin1_General_CP1_CI_AS", the non-Unicode string 'a-c' is less than the string 'ab' because the hyphen ("-") is sorted as a separate character that comes before "b". However, if you convert these strings to Unicode and you perform the same comparison, the Unicode string N'a-c' is considered to be greater than N'ab' because the Unicode sorting rules use a "word sort" that ignores the hyphen.
Я сделал образец кода вы также можете поиграть с COLLATE, чтобы найти тот, который будет работать с вашей сортировкой
DECLARE @test TABLE
(string VARCHAR(50))
INSERT INTO @test SELECT 'co-op'
INSERT INTO @test SELECT 'co op'
INSERT INTO @test SELECT 'co_op'
SELECT * FROM @test ORDER BY string --COLLATE SQL_Latin1_General_Cp1_CI_AS
--co op
--co-op
--co_op
SELECT * FROM @test ORDER BY CAST(string AS NVARCHAR(50)) --COLLATE SQL_Latin1_General_Cp1_CI_AS
--co op
--co_op
--co-op