وجزاكم الله خير
كيف استخدم الدالة Soundex للبحث عن أقرب رقم مشابه
التابع soundex يقوم بإعادة كود للكلمة بما يتناسب مع طريقة لفظها, لاحظ مثلاً النتائج التالية:
PRINT soundex('calendar') -- C453
PRINT soundex('collender') -- C453
PRINT soundex('calenda') -- C453
PRINT soundex('colender') -- C453الان إذا اردت البحث في حقل ما عن كلمات مشابهة يمكنك عمل مثل المثال التالي فهو يقوم بمقارنة الكود الناتج عن التابع Soundex مع الكود الناتج عن التابع Soundex للكلمة المراد البحث عنها...
SELECT
Name,
FROM
AnyTable
WHERE
soundex(FirstName) = soundex('calendar')أو يمكنك استخدام التابع difference حيث نتيجة هذا التابع سوف تكون عبارة عن رقم Integer من 0 إلى 4
صفر تعني أنّ التقارب بين الكلمتين سيئ جداً , بينما 4 تعني أنّ التقارب بين الكلمتين كبير جداً
SELECT
Name
difference('calendar', Name) AS Difference
FROM
AnyTable
ORDER BY
difference('calendar', Name) DESCإذا اردت عمل شيئ قريب من محركات البحث, بإظهار احتمالات للمستخدم في حال ظهور نتائج قليلة او معدومة يمكنك استخدام Top كمايلي:
SELECT TOP 1
'Did you mean "' + Name+ '"?' AS Message
FROM
AnyTable
ORDER BY
difference('calendar', Name) DESCرب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.
لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"