خادم SQL 2000 مثل بيان الاستخدام

لدي عبارة SQL تبدو كالتالي:

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

الجزء الذي أواجه مشكلة فيه هو بيان العبارة مع "LIKEs". لقد رأيت عبارات SQL حيث استخدم المؤلفون عبارات مثل بالطريقة التي أستخدمها أعلاه. في البداية ، اعتقدت أن هذا قد يكون نسخة من التعبيرات العادية ولكني تعلمت منذ ذلك الحين.

هو أي شخص على دراية باستخدام مثل تصريحات في مثل هذه الطريقة. ملاحظة: "N/A" تعمل بشكل جيد.

ما أحتاج إلى مطابقته هو أرقام الهواتف التي تحتوي على أحرف. أو أرقام الهواتف التي لا تحتوي إلا على صفر.

0
وأضاف تحرير
الآراء: 1

2 إجابة

حاول استخدام t-sql ISNUMERIC وظيفة. سيظهر لك ما هي/ليست رقمية.

قد تحتاج أيضًا إلى مسافات TRIM أو REPLACE للحصول على ما تريد.

على سبيل المثال ، للعثور على أرقام هواتف صالحة ، استبدل المساحات بـ "" ، واختبر ISNUMERIC ، واختبر LEN .

على الرغم من أنني سأحذرك ، فسيكون هذا الأمر مملاً إذا اضطررت للتعامل مع أرقام الهواتف الدولية.

الشيء الذي يجب ملاحظته مع SQL أعلاه ، هو أن SQL Server لا يفهم 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, مصدر