2012-04-20 23 views
6

के साथ शुरू होती है या मेरे पास कॉलम के साथ एक तालिका Questions है। इसके स्तंभ मानों इस तरह हैं:निर्धारित करता है कि कॉलम मान स्ट्रिंग

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 

मैं कैसे निर्धारित कर सकते हैं, प्रत्येक पंक्ति के लिए, अगर इसकी स्तंभ मान एक संख्या 0-9 के साथ शुरू होता?

वहाँ किसी भी एसक्यूएल सर्वर 2008 + कार्यों हैं?

उत्तर

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

आप निम्न क्वेरी का उपयोग कर सकते हैं। जो पहले बाईं ओर अतिरिक्त स्थान को हटा देता है और पहले बाएं चरित्र प्राप्त करता है। इस क्वेरी वापसी 0 अगर यह अन्य बुद्धिमान संख्यात्मक नहीं है इसे वापस 1.

Select ISNUMERIC(Left(Ltrim('1 This is Subheading'),1)) As Number 
3
SELECT * FROM Questions WHERE Description LIKE '[0-9]%' 
संबंधित मुद्दे