:
در زمان کار با زبان Tsql در sql server گاهی نیاز است تابه خروجی کوئری خود شماره ردیف اضافه کنیم ، همچنین نیاز داریم تا این شماره ردیف براساس ستونی خاص انجام شود تابع RowNumber در اس کیو ال دقیقا برای اسن نوع از کوئری ها است این تابع به شما این امکان را می دهد مه مرتب سازی و فیلتر را برروی نتیجه کوئری با استفاده از شماره ردیف ها انجام بدهید
در ادامه این مقاله به روش استفاده از این تابع می پردازیم
SELECT ROW_NUMBER() OVER (ORDER BY column_name) AS row_num, column1, column2, ... FROM table_name
در کد بالا توسط Row_Number() تابع RowNumber فراخوانی شده است وOrder by مشخص می کند که ردبف ها براساس کدام ستون مرتب شوندو As row_num به شما این امکان را می دهد که نتیجه را با نام جدید row_num نمایش دهید
ستون های دیگر که قصد نمایش آنها را دارید به صورت مجزا مشخص می کنید
در ادامه چند مثال کاربردی برای استفاده از RowNumber در کوئری ها را بررسی میکنیم:
اگر قصد نتیجه کوئری براساس یک ستون خاص مرتب شود می توانید از کوئری زیر استفاده کنید:
SELECT ROW_NUMBER() OVER (ORDER BY salary DESC) AS row_num, employee_name, salary FROM employees
در این مثال، نتایج بر اساس ستون حقوق به صورت نزولی مرتب شده هست و شماره ردیف به عنوان ستون row_num نمایش داده میشود.
فیلتر کردن نتایج درRowNumber
اگر بخواهید تنها برخی از ردیفها را بر اساس شرایط خاصی نمایش دهید، میتوانید از RowNumber استفاده کنید. به عنوان مثال:
SELECT * FROM ( SELECT ROW_NUMBER() OVER (ORDER BY date_created DESC) AS row_num, order_id, total_amount FROM orders ) AS subquery WHERE row_num <= 200
در این مثال، نتایج بر اساس ستون تاریخ ایجاد به صورت نزولی مرتب شده است و تنها ردیفهایی که شمارهردیف آنها کمتر یا مساوی 200 است، نمایش داده میشوند.
نتیجه گیری
تابع RowNumber در SQL، ابزاری قدرتمند برای مرتبسازی، فیلتر کردن نتایج است. با استفاده از RowNumber، میتوانید نتایج را بر اساس شرایط خاصی مرتب کرده و تنها بخشی از نتایج را که نیاز دارید را نمایش دهید. این قابلیت به شما امکان میدهد عملیات پیچیدهتری را بر روی دادهها انجام دهید و نتایج را به صورت دقیقتری مدیریت کنید. با استفاده از مثالهای ارائه شده و با توجه به نیازهای خود، میتوانید RowNumber را به طور موثری در پروژههای SQL خود به کار ببرید.