سبد خرید 0

وبلاگ

بررسی ()Row_number در SQL SERVER

()Row_Number :

این تابع برای هر ردیف یک عدد منحصر بفرد را بر می گرداند ، عدد انتساب داده شده به صورت ترتیبی به هر رکورد انتساب داده می شود که از یک شروع شده و به تعداد رکورد های برگردانده شده افزایش می یابد  .

ساختار دستور این دستور به صورت زیر می باشد :

استفاده از Partition اختیاری می باشد اما به کاربردن Order by الزامی می باشد .

.  برای درک بهتر ابتدا کوئری زیر را اجرا کنید :

 اگر کوئری فوق را اجرا کنیم نتیجه ای زیر را می بینیم :

حال دستور select را به صورت زیر تغییر می دهیم :

و خروجی به صورت زیر تغییر خواهد کرد :

همانطور که مشاهده می کنید در دستور Row_Number از Partition استفاده نکرده ایم . نوشتن دستور Row_Number در دستور فوق باعث شد تا به هر ردیف یک عدد ترتیبی نسبت دهد . چون در قسمت Order by بر اساس Age گذاشته بودیم ، ابتدا بر اساس Age به صورت صعودی مرتب می کند و بعد اعداد ترتیبی را به هر ردیف نسبت می دهد .

اگر در  دستور Row_Number از Parition هم به صورت زیر استفاده کنیم :

 نتیجه حاصل به صورت زیر خواهد بود :

استفاده از Partition باعث می شود ابتدا یک گروه بندی بر اساس ردیف مورد نظر انجام شود و بعد برای هر گروه شمارش ترتیبی را نسبت می دهد . مثلا برای RoleId با مقدار 1 چون دو ردیف وجود داشت ،هر دو رکورد در یک گروه در نظر گرفته و اعداد ترتیبی را به آنها نسبت می دهد .

اشتراک گذاری:

مطالب زیر را حتما مطالعه کنید

دیدگاهتان را بنویسید

keyboard_arrow_up