12/12/2018, 09:19

[DATABASE] Hướng dẫn sử dụng FIRST_VALUE và LAST_VALUE trong Sqlserver

Xin chào các bạn trong bài viết hôm nay, mình xin hướng dẫn đến các bạn hai hàm First_value và Last_value trong sqlsever được Microsoft cung cấp từ phiên bản Sqlsever 2012. Vậy hai hàm First_value và Last_value là gì? Đúng như tên của nó hàm first_value ...

Xin chào các bạn trong bài viết hôm nay, mình xin hướng dẫn đến các bạn hai hàm First_value và Last_value trong sqlsever được Microsoft cung cấp từ phiên bản Sqlsever 2012.

Vậy hai hàm First_value và Last_value là gì?

Đúng như tên của nó hàm first_value sẽ trả về cho chúng ta giá trị đầu tiên trong bảng.

Và Hàm Last_value sẽ trả về cho chúng ta giá trị cuối cùng.

Cú pháp:

FIRST_VALUE LAST_VALUE ( [scalar_expression ) 
    OVER ( [ partition_by_clause ] order_by_clause rows_range_clause ) 

first_value_sqlserver_hinh1

Như hình trên, từng ô mình để là một msm (máy móc) có chứa nhiều hình ảnh.

Và công việc mình muốn truy vấn ở đây là ở mỗi máy msm trả về cho mình hình ảnh đầu tiên hoặc hình cuối cùng, để mình có thể cài đặt làm hình đại diện...

Bây giờ, mình sẽ sử dụng câu truy vấn như sau:

SELECT DISTINCT msm, 
FIRST_VALUE(hinh) OVER (PARTITION BY msm ORDER BY msm) FstValue
--LAST_VALUE(hinh) OVER (PARTITION BY msm ORDER BY msm) LstValue
FROM hinh 

Kết quả:

first_value_sqlserver_hinh2

Ở hình trên, mỗi dòng đã trả về cho chúng ta một hình đầu tiên, để chúng ta có thể làm hình đại diện.

Tương tự, như hàm First_Value, các bạn thay bằng Last_value thì sqlserver sẽ trả về cho các bạn tấm hình cuối cùng.

SELECT DISTINCT msm, 
LAST_VALUE(hinh) OVER (PARTITION BY msm ORDER BY msm) Lstvalue

FROM hinh 

Và kết quả:

first_value_sqlserver_hinh3

HAVE FUN :)

Tags: first_value sqlserverlast_value sqlserver
0