2012-04-20 23 views
6

Tôi có một bảng Questions với một cột Description. giá trị cột của nó là như thế này:xác định xem chuỗi giá trị cột có bắt đầu bằng một số

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 

Làm thế nào tôi có thể xác định, cho mỗi hàng, nếu giá trị cột của nó bắt đầu với một số 0-9?

Có bất kỳ chức năng SQL Server 2008+ nào không?

Trả lời

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

Bạn có thể sử dụng các truy vấn sau đây. Đầu tiên, loại bỏ thêm không gian hình thành phía bên trái và nhận được ký tự đầu tiên bên trái. Truy vấn này trả lại 0 nếu nó không phải là số khác khôn ngoan, nó trả về 1.

Select ISNUMERIC(Left(Ltrim('1 This is Subheading'),1)) As Number 
3
SELECT * FROM Questions WHERE Description LIKE '[0-9]%' 
Các vấn đề liên quan