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


استفاده از تابع Row Number بدون Order By در اسکریپت SQL Server

استفاده از تابع Row Number بدون Order By در اسکریپت SQL Server
شاید از کاربرد تابع ROW_NUMBER در SQL Server مطلع باشید که با استفاده از این تابع برای تولید اعداد پشت سر هم و یا بعبارتی sequential number برای result set یا خروجی دستور Select می باشد. شما حتما باید از ORDER BY به همراه تابع ROW_NUMBER برای تولید اعداد ردیف ها استفاده کنید. در این مقاله ، یک ترفند ساده برای تولید شماره ردیف بدون استفاده از ORDER BY را به شما نشان خواهیم داد.

سیستم یکپارچۀ سازمانی راهکار



SELECT
ROW_NUMBER() OVER(ORDER BY Employee_Name ASC) AS Row_Num,
Employee_Name
FROM MTB_Table_A
GO


خروجی دستور، بر حسب Table و فیلدی که در Select قرار می دهید، قطعا متفاوت خواهد بود ولی بصورت کلی اعداد پشت سر هم در کنار همان فیلد یا فیلدها، قرار می گیرد:

/* Result */
Row_Num Employee_Name
-------------------- ---------------
1 Ashley
2 Brayden
3 Emily
4 Emma
5 Jacob
6 Michael
7 Olivia
8 Ryan
9 Tyler
10 William

(10 row(s) affected)

اگر از تابع ROW_NUMBER بدون ORDER BY استفاده کنید، خطای زیر را دریافت خواهید کرد:

SELECT
ROW_NUMBER() OVER() AS Row_Num,
Employee_Name
FROM MTB_Table_A
GO

/* Result */
Msg 4112, Level 15, State 1, Line 445
The function 'ROW_NUMBER' must have an OVER clause with ORDER BY.

شما می توانید با یک Query ساختگی، از این مورد جلوگیری کنید و دیگر از ORDER BY برای ترتیب رکوردها استفاده نکنید. در کوئری زیر بدون استفاده از ORDER BY و بدون هیچ اروری در اجرای این اسکریپت، می بینید که کوئری اجرا می شود.

SELECT
ROW_NUMBER() OVER(ORDER BY (Select 0)) AS Row_Num,
Employee_Name
FROM MTB_Table_A
GO

استفاده از تابع Row Number بدون Order By در اسسکریپت SQL Server . آموزشگاه رایگان خوش آموز


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

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

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


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