number sql-server-2005 sorting hyphen

sql-server-2005 - number - mysql order alphanumeric



Clasificación SQL y guiones (1)

Aprendí algo nuevo, igual que tú también

Creo que la diferencia está entre " Clases de cadenas " y " Clasificación de palabras " (ignora el guión)

Diferencia de muestra entre WORD sort y STRING sort http://andrusdevelopment.blogspot.com/2007/10/string-sort-vs-word-sort-in-net.html

De Microsoft http://support.microsoft.com/kb/322112

Por ejemplo, si está utilizando la intercalación SQL "SQL_Latin1_General_CP1_CI_AS", la cadena no-Unicode ''ac'' es menor que la cadena ''ab'' porque el guión ("-") está ordenado como un carácter separado que viene antes de "b" . Sin embargo, si convierte estas cadenas a Unicode y realiza la misma comparación, la cadena Unicode N''a-c ''se considera que es mayor que N''ab'' porque las reglas de clasificación Unicode usan un "orden de palabras" que ignora el guión .

Hice un código de ejemplo. También puedes jugar con el COLLATE para encontrar el que trabaje con tu clasificación.

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

¿Hay alguna manera de ordenar fácilmente SQL Server 2005 mientras se ignoran los guiones en un campo de cadena? Actualmente tengo que hacer un REEMPLAZO (nombre de campo, ''-'', '''') o una función para eliminar el guión en la cláusula de ordenación. Esperaba que hubiera una bandera que pudiera establecer en la parte superior del procedimiento almacenado o algo así.

El acceso y la clasificación predeterminada de GridView parece ignorar el hypen en cadenas.