Hàm Scalar trong SQL
Hàm Scalar - Scalar function trong SQL

Hàm Scalar nói đơn giản là một hàm được tạo mặc định trong SQL, các bạn có thể nghe đâu đó về T-SQL hay Transaction – SQL ( là một extention trong SQL, phát triển dựa trên ngôn ngữ SQL chuẩn ), hàm Scalar chính là một trong những hàm được tích hợp trong T – SQL.

Về chức năng, scalar function sẽ giúp bạn trả lại một giá trị khi thực thi. Scalar có thể cần 0, 1 hoặc nhiều giá trị đầu vào. Ví dụ:

  • Mệnh đề GETDATE() không cần giá trị đầu vào
  • UPPER() thì cần 1 giá trị
  • Hoặc ROUND() cần nhiều giá trị hơn.

Bởi vì hàm scalar chỉ trả về một giá trị nên nó có thể được sử dụng bất cứ vị trí nào cần 1 giá trị cụ thể. Chúng ta có thể thấy hàm Scalar ở mệnh đề SELECT hay WHERE, thậm chí chúng cũng có thể sử dụng ở mệnh đề SET, UPDATE. Chúng hay được sử dụng như là một Subqueries

Ví dụ hàm scalar được dùng trong mệnh đề Where

Hàm scalar bao gồm nhiều các mệnh đề sử dụng cho các kiểu dữ liệu

1/ Các mệnh đề xử lý dữ liệu DATE TIME.

SELECT  DOB,
                YEAR(DOB) AS Birth_Year,
                DATENAME(MM, DOB) AS Birth_Month,
                DAY(DOB) AS Day_Month,
                DATENAME(dw, DOB) AS WeekDay,
                DATEDIFF(yy,DOB, GETDATE()) AS Years_Since_Birthday
FROM [dbo].[CustomerDemographic];

2/ Các mệnh đề xử lý dữ liệu NUMBERIC.

 

SELECT  Value,
       ROUND(Value, 2) AS Rounded,
       FLOOR(Value) AS Floor,
       CEILING(Value) AS Ceiling,                            — GNV Academy 
       SQUARE(Value) AS Squared,
       SQRT(Value) AS Root,
       LOG(Value) AS Log,
       Value * RAND() AS Randomized
FROM [dbo].[NewCustomerList$]

3/ Các mệnh đề xử lý dữ liệu TEXT.

SELECT  first_name,
        UPPER(first_name) AS UpperCase,
        LOWER(first_name) AS LowerCase,
        LEN(first_name) AS Length,
        REVERSE(first_name) AS Reversed,
        CHARINDEX(‘ ‘, first_name) AS FirstSpace,
        SUBSTRING(first_name, 1, 3) AS First_Three_Word
FROM [dbo].[NewCustomerList$]

Hàm logic

Hàm Scalar cũng có thể xử lý các mệnh đề Logic, như hàm IIF ( tương tự như IF trong Excel ). Ví dụ: 

Kiểm tra những ai không có nghề nghiệp thì sẽ cập nhật là thất nghiệp (Unemployment).

SELECT  job_title
                  , IIF(job_title is null,’Unemployment’,job_title) as UPDATE_Job_Title
FROM [dbo].[NewCustomerList$]

Nội dung