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


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

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

نرم افزار سامانه مودیان راهکار
Syntax استفاده از تابع LAST_VALUE به فرم زیر می باشد.



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

همه موارد فوق در پست FIRST_VALUE توضیح داده شده اند و فقط frame_clause زیر مجموعه (یا فریم) بخش مورد ارزیابی را تعریف می کند. استفاده از آن را در کوئری مشاهده خواهید کرد.
حالا برای آشنایی بهتر با تابع LAST_VALUE، مثال های زیر را خواهیم داشت.
ابتدا جدولی با نام EMP را ایجاد و سپس مقادیری را در آن اضافه خواهیم کرد.

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)

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

SELECT EMPID, EMP_DEPT, EMP_NAME, EMP_SALARY,
LAST_VALUE(Emp_Name) OVER ( ORDER BY EMP_SALARY,
EMP_NAME ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) AS LASTTVALUE
FROM EMP

در کوئری فوق از FRAME_CLAUSE استفاده شده است(ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) که به تابع LAST_VALUE می گوید که فریم آن از ردیف اول شروه شده و (UNBOUNDED PRECEDING) و در آخرین ردیف (UNBOUNDED FOLLOWING) خروجی یا Result Set خاتمه می یابد.

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

LAST_VALUE function With PARTITION CLAUSE

در مثال زیر، تابع LAST_VALUE نام پردرآمدترین کارمند در هر بخش را برمی گرداند و اگر بیش از یک کارمند برای هر بخش دارای حقوق یکسان باشد ، رکورد را بر اساس نام کارمند ORDER BY می کند.

SELECT EMPID, EMP_DEPT, EMP_NAME, EMP_SALARY,
LAST_VALUE(Emp_Name) OVER (PARTITION BY EMP_DEPT ORDER BY EMP_SALARY ROWS
BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING ) AS LASTVALUE
FROM EMP

نحوه استفاده از تابع LAST_VALUE در SQL Server
همانطور که مشاهده می کنید ، این تابع پردرآمدترین نام کارمند در هر بخش را در برابر هر ردیف برمی گرداند. همچنین در بخش منابع انسانی دو کارمند وجود دارد که حقوق یکسانی را دریافت می کنند که مقدار آن 55000 است و بنابراین مرتب سازی آنها به اساس نام آنها و به صورت صعودی انجام شده است.


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

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

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


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