transponer numero multiple filas fila convertir columns columnas 10g sql order sql-order-by

numero - pivot sql



¿Cómo devuelvo las filas con un valor específico primero? (3)

En SQL Server, Oracle, DB2 y muchos otros sistemas de bases de datos, esto es lo que puede usar:

ORDER BY CASE WHEN city = ''New York'' THEN 1 ELSE 2 END, city

Quiero que mi consulta devuelva las filas de la tabla donde una columna contiene un valor específico primero, y luego devuelve el resto de las filas ordenadas alfabéticamente.

Si tengo una tabla, algo así como este ejemplo:

- Table: Users - id - name - city - 1 George Seattle - 2 Sam Miami - 3 John New York - 4 Amy New York - 5 Eric Chicago - 6 Nick New York

Y usando esa tabla, quiero que mi consulta devuelva primero las filas que contienen Nueva York y luego el resto de las filas alfabéticamente por ciudad. ¿Es posible hacerlo con solo una consulta?


Mi respuesta puede ser antigua y no necesaria, pero alguien puede necesitar un enfoque diferente, por lo tanto publicarlo aquí.

Tenía el mismo requisito implementado esto, funcionó para mí.

Select * from Users ORDER BY (CASE WHEN city = ''New York'' THEN 0 ELSE 1 END), city GO

PD

esto es para SQL


Si su dialecto SQL es lo suficientemente inteligente como para tratar las expresiones booleanas como si tuvieran un valor numérico, puede usar:

SELECT * FROM `Users` ORDER BY (`city` = ''New York'') DESC, `city`