خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


تابع ()DIFFERENCE در SQL Server

تابع ()DIFFERENCE در SQL Server
یکی از توابع کاربردی در SQL Server، تابع DIFFERENCE می باشد و برای درک بهتر یا نکته کلیدی برای درک بهتر تابع DIFFERENCE، درک تابع Soundex می باشد. دلیل این امر این است که تابع DIFFERENCE (اختلاف) تفاوت بین مقادیر Soundex بین دو رشته را برمی گرداند.

نرم افزار سامانه مودیان راهکار




مقداری Soundex در خروجی بر میگرداند، به اندازه 4 کاراکتر طول دارد. اگر دو کلمه به نظر یکسان برسد ، از نظر Soundex دارای چهار کاراکتر یکسان هستند. حتما اگر در خصوص این تابع اطلاعی ندارید، به لینک فوق مراجعه کنید. مقداری که تابع DIFFERENCE در خروجی خود برمیگرداند، بین 0 تا 4 است که این مقدار، تعداد کاراکترهای مقادیر Soundex را نشان می دهد که یکسان هستند. 0 نشانگر شباهت ضعیف یا عدم وجود شباهتی است و 4 نشان دهنده شباهت زیاد یا عین همان است. در ادامه با مثال هایی که مشاهده می کنید، بهتر با طرز کار این تابع آشنا می شوید.

Syntax استفاده از تابع DIFFERENCE بصورت زیر می باشد:

DIFFERENCE ( character_expression , character_expression )

همانطور که نشان داده شد، این تابع دو آرگومان را می پذیرد. کدهای Soundex هر عبارت، مقایسه شده و نتیجه بازگردانده می شود.
در مثالی که در ذیل مشاهده می کنید، در خروجی کدهای Soundex یکسانی داشته و در نتیجه طبق توضیحاتی فوق، خروجی تابع DIFFERENCE، برابر 4 خواهد بود:

SELECT DIFFERENCE('Two','Too');

4

اگر برایتان سوال است که مقدار 4 از کجا آمده است، به اسکریپت زیر نگاهی داشته باشید و بدین ترتیب خواهید دید که کدهای Soundex هر دو یکسان است:

SELECT
SOUNDEX('Two') AS Two,
SOUNDEX('Too') AS Too;

Two   Too
---- ----
T000 T000

در این مثال از تابع SOUNDEX برای بازگرداندن کدهای Soundex هر کلمه استفاده شده است. همانطور که مشخص شد ، هر دو کلمه کد Soundex (T000) یکسانی دارند. و از آنجا که هر چهار کاراکتر کدهای Soundex یکسانی هستند، در نتیجه تابعDIFFERENCE مقدار 4 را در خروجی برمی گرداند.
مثال دیگری را در اسکریپت زیر مشاهده کنید که رشته ها شباهت کمتری به هم دارند:

SELECT DIFFERENCE('Tea','Coffee');

2

هر دو رشته، یکسان نیستند ولی شباهت هایی به هم دارند و اگر مانند مثال قبلی، این دو را به تابع SOUNDEX پاس دهیم، در خروجی خواهیم دید که یکسان نیستند ولی به هم شباهت هایی هم دارند:

SELECT
SOUNDEX('Tea') AS Tea,
SOUNDEX('Coffee') AS Coffee;

Tea   Coffee
---- ------
T000 C100

بنابراین می بینیم که فقط دو کاراکتر Soundex در این بین مشابه هستند و از این رو تابع DIFFERENCE در خروجی مقدار 2 را برمیگرداند.
مثال زیر هم برای شرایطی است که رشته اصلا به هم شباهت ندارند و یا شباهت خیلی کمی دارند.

SELECT DIFFERENCE('Tree','Captivated');

0


همانطور که مشاهده کردید، از آنجایی که شباهتی بین دو رشته وجود نداشت و یا سباهت بسیار کم بود، در نتیجه، خروجی مقدار 0 را نمایش می دهد.

اگر هر دو کلمه فوق را به تابع SOUNDEX پاس دهید، خواهید دید که خروجی این دو ابدا یکسان نیست. پس به درستی در خروجی مقدار 0 نشان داده شده است:

SELECT
SOUNDEX('Tree') AS Tree,
SOUNDEX('Captivated') AS Captivated;

Tree  Captivated
---- ----------
T600 C131


نمایش دیدگاه ها (0 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.


دسته بندی مطالب خوش آموز