स्टेटमेंट उपयोग की तरह एसक्यूएल सर्वर 2000

मेरे पास एक SQL कथन है जो इस तरह दिखता है:

SELECT [Phone]
FROM [Table]
WHERE
(
    [Phone] LIKE '[A-Z][a-z]'
    OR [Phone] = 'N/A'
    OR [Phone] LIKE '[0]'
)

जिस हिस्से में मुझे परेशानी हो रही है वह "LIKEs" के साथ कहां है। मैंने एसक्यूएल कथन देखे हैं जहां लेखकों ने जैसे कथन का उपयोग किया है जिस तरह से मैं उन्हें ऊपर उपयोग कर रहा हूं। सबसे पहले, मैंने सोचा कि यह नियमित अभिव्यक्तियों का एक संस्करण हो सकता है लेकिन मैंने तब से सीखा है।

क्या कोई इस तरह के बयान जैसे प्रयोग करने से परिचित है। नोट: "एन/ए" ठीक काम कर रहा है।

मुझे मिलान करने की ज़रूरत है फ़ोन नंबर जिनके पास अक्षर हैं। या फोन नंबर जिनमें शून्य के अलावा कुछ भी नहीं है।

0

2 उत्तर

t-sql ISNUMERIC फ़ंक्शन का उपयोग करने का प्रयास करें। यह आपको दिखाएगा कि कौन से हैं/संख्यात्मक नहीं हैं।

आप जो चाहते हैं उसे पाने के लिए आपको TRIM या REPLACE रिक्त स्थान की भी आवश्यकता हो सकती है।

उदाहरण के लिए, वैध फोन नंबर खोजने के लिए, '' के साथ रिक्त स्थान को प्रतिस्थापित करें, ISNUMERIC के साथ परीक्षण करें, और LEN के साथ परीक्षण करें।

हालांकि मैं आपको चेतावनी दूंगा, अगर आपको अंतरराष्ट्रीय फोन नंबरों से निपटना पड़ेगा तो यह कठिन होगा।

उपरोक्त आपके एसक्यूएल के साथ नोट करने की बात यह है कि SQL सर्वर Regex को समझ में नहीं आता है।

0
जोड़ा
आपकी प्रतिक्रिया के लिए धन्यवाद। मैंने IsNumeric फ़ंक्शन का उपयोग करने के बारे में सोचा लेकिन अगर मुझे गलत नहीं लगता है, तो वह कार्य छोटी है। मुझे अंतरराष्ट्रीय फोन नंबरों से निपटना होगा और इसलिए मुझे नहीं लगता कि यह समाधान मेरे लिए है। बहुत धन्यवाद!
जोड़ा लेखक Frank V, स्रोत

यहां देखें।

[] पात्रों की एक श्रृंखला से मेल खाता है।

मुझे लगता है कि आप ऐसा कुछ चाहते हैं:

SELECT [Phone]
FROM [Table]
WHERE
(
    [Phone] LIKE '%[A-Z]%'
    OR [Phone] LIKE '%[a-z]%'
    OR [Phone] = 'N/A'
    OR [Phone] LIKE '0'
)
0
जोड़ा
भूले हुए अर्धविराम (भयानक उपयोगकर्ता नाम), धन्यवाद। वह लिंक बिल्कुल वही है जो मुझे चाहिए था। मुझे इसे Google खोज पर नहीं मिला। आपके उदाहरण ने मेरी गलती को महसूस करने में भी मदद की।
जोड़ा लेखक Frank V, स्रोत
वाह, पता नहीं था कि यह संभव था
जोड़ा लेखक Danimal, स्रोत