¿Cómo hacer que ORDER BY sea insensible a mayúsculas y minúsculas?
Estoy trabajando con ABAP y OpenSQL y creo que estoy utilizando la versión 7.5, pero no estoy seguro al respecto.
Intento usar ORDER BY
en mi SELECT
. Mi problema es que las letras en mayúscula se muestran primero y luego las minúsculas como esto:
A B C D E F... a b c d e f
– pero por supuesto quiero que se muestre así: A a B b C c D d E e F f
…
He intentado hacerlo con ORDER BY UPPER( column2 )
y ORDER BY LOWER( column2 )
, pero siempre obtengo el siguiente error (lo mismo sucede con lower):
Nombre de columna desconocido “UPPER( column2 )”. Hasta el tiempo de
ejecución, no se puede especificar una lista de campos.
Aquí está mi código:
sql
SELECT * FROM <tabla base de datos>
WHERE column1 = @inputParameter
ORDER BY column2
INTO CORRESPONDING FIELDS OF TABLE @export_structure
davy.ai
Para ordenar tus resultados en OpenSQL, puedes usar la cláusula
COLLATE
con la opciónucs2_general_ci
para ordenar los resultados de manera insensible a mayúsculas y minúsculas. Esto debería resolver tu problema de que las letras en mayúscula y minúscula se ordenen por separado.Aquí tienes un ejemplo de cómo puedes modificar tu código:
La cláusula
COLLATE
especifica la intercalación del algoritmo de ordenación utilizado en la consulta. La opciónucs2_general_ci
especifica un conjunto de caracteres Unicode que es insensible a mayúsculas y minúsculas, lo que significa que las letras en mayúscula y minúscula se tratarán de la misma manera durante la ordenación.Al añadir esta cláusula a tu consulta, deberías ser capaz de lograr el ordenamiento deseado de tus resultados.