SELECT test_column FROM test_table ORDER BY test_column me da esto:

1   
12  
123  
2  
3

Por qué no:

1
2
3
12
123  

@JosephPla de que Usted tiene el punto, muchas gracias. ¿Cómo puedo ordenar las cadenas como los números ?

Ordenar por cadena y no por valor.
¿Qué tipo si columna test_column ?
Hacer algo como SELECCIONAR test_column DE test_table ORDEN de convert(int,test_column)
Si el tipo de test_table es cadena, El ORDER BY ordena basado en el primer carácter del código ASCII
No hay nada malo con esta pregunta.

OriginalEl autor CDT | 2013-07-20

4 Comentarios

  1. 13

    Intentar

    SELECT test_column 
    FROM test_table 
    ORDER BY cast(test_column as int)

    Pero usted debe mirar en el cambio de los tipos de columna a la correcta.

    Vale la pena destacar que CAST no uso de cualquier índice.

    OriginalEl autor JBrooks

  2. 4

    Este trabajo me:-

    ORDER BY cast(test_column as SIGNED)
    gracias trabajó también para mí.

    OriginalEl autor vineet

  3. 2

    La especie está trabajando. Es una de ordenación lexicográfica (en orden alfabético). Parece que el que la columna tiene un texto (char, varchar, …), por lo que el orden que voy a conseguir es textual y no numérico.

    Si quieres un orden numérico, utilice una columna numérica tipo (por ejemplo, int). (De fundición o de la columna correctamente.)

    OriginalEl autor Mat

  4. 2

    Comprobar si el tipo de la columna es de tipo varchar o algo similar. Parece que se está ordenado por la cadena de valor, no por el valor numérico. Si la columna contiene números que mejor debe ser de tipo int.

    OriginalEl autor Dennis Traub

Dejar respuesta

Please enter your comment!
Please enter your name here