SQLServer 2005 Express
Necesito realizar una consulta que me devuelva las filas de una tabla
cuyo uno de los campos empiece por una letra:
Esto sería para la letra 'A'
SELECT * FROM Tabla1 WHERE Tabla1.Campo1 LIKE 'A%'
Mi problema es -parecido- :
Necesito obtener las filas que no empiecen por letra es decir que
comiencen con un número o cualquier otro caracter.
Así funciona en un principio:
SELECT * FROM Tabla1 WHERE Tabla1.Campo1>=' ' AND Tabla1.Campo1<'A'
pero me parece un tanto chapucero, porque además no estoy seguro que
funcione para cualquier caracter por lo siguiente:
Si creo el procedimiento almacenado:
CREATE PROCEDURE FiltroLetra
@Inicio CHAR,
@Fin CHAR
AS
BEGIN
SELECT * FROM Tabla1 WHERE Tabla1.Campo1>=@Inicio AND
Tabla1.Campo1<@Fin
END
y desde .NET llamo al procedimiento con los parámetros:
@Inicio = 'A'
@Fin = 'B'
Funciona y devuelve los que comienzan por A (que es lo deseado)
Para
@Inicio = ' ' (caracter espacio : ASCII2)
@Fin = 'A'
Aparentemente funciona y devuelve los que tengo que empiezan por numero
u otro caracter que no sea una letra
Pero, si uso los siguientes valores:
@Inicio = 'Z'
@Fin = 'ÿ' (valor ASCII 255)
No me devuelve ninguna fila, aunque existen filas que empiezan por Z
Hay en T-SQL algo previsto para mi problema?
Leer las respuestas