2012-04-20 8 views
6

Tengo una tabla Questions con una columna Description. Sus valores de columna son así:determinar si la cadena del valor de la columna comienza con un número

This is First Heading, 
1 This is Subheading one, 
1.2 This is subheading Question 
This is Second heading 
2 This is subheading Two. 
2.1 This is Subheading Question1 

¿Cómo puedo determinar, para cada fila, si su valor de la columna comienza con un número 0-9?

¿Hay funciones de SQL Server 2008+?

Respuesta

17
SELECT CASE WHEN ISNUMERIC(SUBSTRING(LTRIM(Description), 1, 1)) = 1 
     THEN 'yes' 
     ELSE 'no' 
     END AS StartsWithNumber 
FROM Questions 
0
select true where cast(substring('1 This is Subheading', 1, 1) as int) between 0 AND 9 
1

Puede utilizar la siguiente consulta. Lo cual primero elimina el espacio extra del lado izquierdo y obtiene el primer carácter izquierdo. Este retorno consulta 0 si no es numérico de otra forma que vuelva 1.

Select ISNUMERIC(Left(Ltrim('1 This is Subheading'),1)) As Number 
3
SELECT * FROM Questions WHERE Description LIKE '[0-9]%' 
Cuestiones relacionadas