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


نحوه استفاده از تابع FIRST_VALUE در SQL Server

نحوه استفاده از تابع FIRST_VALUE در SQL Server
تابع FIRST_VALUE در SQL Server یک تابع تحلیلی است که اولین مقدار را در یک Result set از رکوردهای ORDER شده برمی گرداند. تابع FIRST_VALUE برای اولین بار در SQL Server 2012 معرفی شده و Syntax استفاده از این تابع بصورت زیر می باشد.

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



LAST_VALUE(Column_Name) OVER ( [partition_by_clause col1, col2,.]
ORDER BY Col1, Col2, ...)

Column_Name

در واقع مقداری که برگشت داده می شود.

partition_by_clause

ردیف های Result set را به بخش هایی که تابع به آنها اعمال می شود تقسیم می کند(اختیاری).

order_by_clause

ترتیب انجام عملیات را مشخص کنید(اجباری).
با مثال عملی از تابع FIRST_VALUE، بهتر عملکرد و استفاده آن را درک خواهیم کرد. پس به سراغ مثال می رویم.
ابتدا یک جدول با نام EMP ایجاد می کنیم و مقادیری را در آن insert خواهیم کرد.

CREATE TABLE dbo.EMP
(EMPID INT PRIMARY KEY,
EMP_DEPT VARCHAR(50),
EMP_NAME VARCHAR(30),
EMP_SALARY NUMERIC(9,2))

INSERT INTO dbo.EMP (
EMPID, EMP_DEPT, EMP_NAME, EMP_SALARY)
VALUES(
101, 'PRODUCTION', 'RAJAT M', 75000.00),
(102, 'PRODUCTION', 'MUKESH BHATIA', 70000.00),
(103, 'PRODUCTION', 'MUSKAN MEHTA', 75000.00),
(104, 'SALES', 'ROHAN B NARAYA', 45000.00),
(105, 'SALES', 'SUSHIL DAS', 40000.00),
(106, 'SALES', 'MANISH', 45000.00),
(107, 'PRODUCTION', 'RAJESH SINGH', 78000.00),
(108, 'HR', 'MOHIN KHAN',50000.00),
(109, 'HR', 'SUSHANT K SINGH', 55000.00),
(110, 'HR', 'LAKSHYA RAWAT', 55000.00),
(111, 'PRODUCTION', 'MANOJ KUMAR', 75000.00),
(112, 'SALES', 'SUJOY M', 40000.00),
(113, 'LOGISTIC', 'VINAY AGARWAL', 35000.00),
(114, 'LOGISTIC', 'MUSTAKIM M', 35000.00),
(115, 'LOGISTIC', 'VIJAY KUMAWAT', 45000.00)

نحوه استفاده از تابع FIRST_VALUE در SQL Server
به سراغ اولین مثال از FIRST_VALUE خواهیم رفت که در ساده ترین حالت از FIRST_VALUE می توانید استفاده کنید.
در مثال زیر تابع FIRST_VALUE نام پردرآمدترین کارمند را برمی گرداند و اگر کارمندی دیگری همین شرایط را داشته باشد که مشابه همین فرد حقوق دریافت می کند، آنوقت اسامی آنها Sort می شود که در ORDER BY این کار انجام می شود و سپس نام فرد مربوطه را در خروجی مشاهده خواهید کرد.

SELECT EMPID, EMP_DEPT, EMP_NAME, EMP_SALARY,
FIRST_VALUE(EMP_NAME) OVER (ORDER BY EMP_SALARY DESC, EMP_NAME ) AS FIRSTVALUE
FROM EMP FIRST_VALUE

نحوه استفاده از تابع FIRST_VALUE در SQL Server
حالا مثال دیگری از FIRST_VALUE را مشاهده خواهید کرد. در مثال زیر ، تابع FIRST_VALUE نام پردرآمدترین کارمند در هر بخش را برمی گرداند و اگر بیش از یک کارمند برای هر بخش دارای حقوق یکسان باشد ، رکورد را بر اساس نام کارمند به ترتیب صعودی مرتب می شود.

SELECT EMPID, EMP_DEPT, EMP_NAME, EMP_SALARY,
FIRST_VALUE(EMP_NAME)OVER(PARTITION BY EMP_DEPT ORDER BY EMP_SALARY DESC, EMP_NAME ) AS FIRSTVALUE
FROM EMP FIRST_VALUE

نحوه استفاده از تابع FIRST_VALUE در SQL Server
همانطور که در Result فوق مشاهده می کنید، نام کارمند پردرآمد هر بخش را مشاهده می کنید که در بخش Sales دو نفر با بالاترین حقوق یکسان وجود داشتند و از این رو به ترتیب اسم آنها لیست شدند. در واقع در مثال فوق به نحوه بکارگیری آرگومان اختیاری PARTITION BY در تابع FIRST_VALUE را مشاهده کردید.



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

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

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


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