2010-08-31 34 views
34

Por la mañana, ¿es posible ordenar filas de datos sql por la longitud de los caracteres?Consulta SQL: ordena por longitud de caracteres?

p. Ej. SELECT * FROM database ORDER BY data.length()

+3

¿Usted intentó correr esa declaración SQL? –

+0

en realidad? ;) – TorbenL

+0

Para aquellos que buscan hacer esto con SQLAlchemy, combine ['desc()'] (http://docs.sqlalchemy.org/en/rel_1_1/core/sqlelement.html?highlight=desc#sqlalchemy.sql.expression .desc) con ['func()'] (http://docs.sqlalchemy.org/en/rel_1_1/core/sqlelement.html?highlight=desc#sqlalchemy.sql.expression.func), como se hace referencia a [aquí ] (http://stackoverflow.com/a/15743220/594137). –

Respuesta

51

creo que desea utilizar esto: http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_char-length

SELECT * FROM table ORDER BY CHAR_LENGTH(field) 

Usted puede utilizar simplemente LONGITUD(), pero ten cuidado, ya que cuenta con el byte número (que no le dará el resultado esperado con cadenas multibyte).

+1

+1 Para usar 'CHAR_LENGTH' en lugar de' LENGTH'. – Gumbo

+0

eso es todo! ¡¡Gracias!! – TorbenL

+1

Consulte la respuesta de Alex Reitborts a continuación si está buscando la variante de MS SQL Server. – Gigi2m02

6
SELECT * FROM table ORDER BY length(data) desc 

Cuando los datos es campo varchar

+0

Funciona en sqlite3 – tounaobun

27
SELECT * FROM database ORDER BY Len(data) 
+9

Éste trabaja con MS SQL Server. – Denis

0
SELECT * FROM YourTable ORDER BY LENGTH(Column_Name) DESC 

por ejemplo;

SELECT * FROM Customer ORDER BY LENGTH(CustomerName) DESC 
0

para cualquiera que haga con SQLite

SELECT * FROM table ORDER BY LENGTH(field) DESC 
Cuestiones relacionadas