name2 podría ser una cadena o un número. Es decir 'one two' o 12
Me gustaría ordenar los nombres para que los números sean los últimos, es decir:
aa bb one two 1 22 select name1, name2 from names order by name2P: ¿cómo se haría?
PS en Oracle es así .
Puede usar la función REGEXP_REPLACE() con '[^[:digit:]]*' posix, para determinar si la cadena tiene un dígito o no, incluido un asterisco al final para anclar una expresión regular al final del texto de origen :
SELECT name2 FROM t ORDER BY REGEXP_REPLACE(name2,'[^[:digit:]]*',''), name2Puede usar una expresión booleana en order by , por ejemplo:
select name1, name2 from names order by left(name2, 1) <= '9', name2