Ver Mensaje Individual
  #4 (permalink)  
Antiguo 02/01/2007, 19:36
Avatar de BrujoNic
BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Re: Mostrar de A-H ?

Intenta esto:

Código PHP:
SELECT FROM alumnos
WHERE ASCII
(UPPER(SUBSTR(nombre11))) > (ASCII('A')-1) AND
ASCII(UPPER(SUBSTR(nombre11))) < (ASCII('H')+1ORDER 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.
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL

Última edición por BrujoNic; 02/01/2007 a las 19:45