Intenta esto:
Código PHP:
SELECT * FROM alumnos
WHERE ASCII(UPPER(SUBSTR(nombre, 1, 1))) > (ASCII('A')-1) AND
ASCII(UPPER(SUBSTR(nombre, 1, 1))) < (ASCII('H')+1) ORDER BY UPPER(nombre);
Explicación de las funciones:
SUBSTR(nombre,1,1) = Obtiene el primer caracter de nombre, supongamos que el primer nombre es Amanda. La letra obtenida es 'A'.
UPPER(resultado de SUBSTR, o sea, 'A') = Lo que hace es poner en mayúscula ese resultado, suponiendo que en ves de Amanda, escribieron amanda, la letra obtenida sería 'a', pero con UPPER, la convierte a 'A'.
ASCII(resultado de UPPER) = En este caso, se convierte el resultado a un valor númerico para su evaluación. El valor ASCII de A es 65.
Ese valor, se compara con uno menor a A, o sea, 64. Ese es el valor de ASCII('A')-1.
Para finalizar, se indica que el rango a evaluar va a ser hasta la H, o sea, el valor ASCII('H') = 72. Pero como se debe incluir hasta la H, se debe sumar uno a la sentencia ASCII('H'), o sea, 73.
El hecho de convertir la primera letra en mayúscula, en caso que sea minúscula, es para evitar otro rango de la 'a' a la 'h', ya que sus valores ASCII son diferentes: a=97 y h=104. De esa forma, se evalúan las mayúsculas y minúsculas.
Tomando los resultados del ejemplo, se obtendría:
Código PHP:
SELECT * FROM alumnos
WHERE 64 > 63 AND
72 < 73 ORDER BY UPPER(nombre);
Espero que te funcione.