2012-04-27 16 views
13

में संख्या का वाइल्डकार्ड SQL सर्वर 'LIKE' में संख्याओं से मिलान कैसे करें।SQL सर्वर

SpaceName 
------------ 
| New_Space_1 
| . 
| . 
| New_Space_8 
| New_Space_9 
| New_Space_10 
| New_Space_11 
| New_Space_SomeString 
| New_Space_SomeString1 

ऊपर मेरी तालिका सामग्री है। मैं केवल संख्यात्मक वर्णों के साथ समाप्त होने वाले रिकॉर्ड प्राप्त करना चाहता हूं, यानी मैं New_Space_1 से New_Space_11 पर रिकॉर्ड चाहता हूं।

New_Space_SomeString और New_Space_SomeString1

नहीं चाहता मैं इस तरह कुछ क्वेरी है।

SELECT SpaceName FROM SpaceTable 
    WHERE SpaceName LIKE 'New_Space_%' 

लेकिन यह सभी रिकॉर्ड देता है।

उत्तर

7

@SteveKass से यह समाधान सही काम करता है जैसे पढ़ें।

SELECT SpaceName FROM SpaceTable WHERE SpaceName LIKE 'New[_]Space[_]%' AND SpaceName NOT LIKE 'New[_]Space[_]%[^0-9]%' 
13

क्योंकि एक नियमित अभिव्यक्ति में _ किसी भी एकल वर्ण का मतलब क्या

के बारे में
SELECT SpaceName FROM SpaceTable 
    WHERE SpaceName LIKE 'New[_]Space[_][0-9]%' 

कारण मैं कोष्ठक में रेखांकित कर दिया है। http://msdn.microsoft.com/en-us/library/ms179859.aspx

+0

ग्रेट .... यह काम करता है ... धन्यवाद – Sreekumar

+1

एक समस्या यह है .. इस 'New_Space_8-56' भी क्वेरी – Sreekumar

+6

द्वारा दिया जाता है कैसे के बारे में इस: SpaceTable से कहां SpaceName की तरह 'नई SpaceName का चयन करें [\ _] स्पेस [\ _]% ' और स्पेसनाम' नई [\ _] स्पेस की तरह नहीं है [\ _]% [^ 0-9]% ' –