Chương 4. CÁC HÀM CHỨC NĂNG

4.1. Hàm thời gian

4.1.1.    ADD_SECOND

Thêm một khoảng thời gian (tính bằng giây) vào một trường dữ liệu ngày tháng.

Cú pháp:

ADD_SECOND (truong_du_lieu_thoi_gian DATETIME, gia tri INT) => DATETIME

·       truong_du_lieu_thoi_gian: Biểu thức hoặc cột trả về kiểu dữ liệu thời gian/ngày tháng.

·       gia_tri: Số giây cần thêm.

Ví dụ:

SELECT ADD_SECOND(’15-08-2019 10:01:30’,30)
-- 15-08-2019 10:02:00

4.1.2.    ADD_MINUTE

Thêm một khoảng thời gian (tính bằng phút) vào một trường dữ liệu ngày tháng.

Cú pháp:

ADD_MINUTE (truong_du_lieu_thoi_gian DATETIME, gia tri INT) => DATETIME

·       truong_du_lieu_thoi_gian: Biểu thức hoặc cột trả về kiểu dữ liệu thời gian/ngày tháng.

·       gia_tri: Số phút cần thêm.

Ví dụ:

SELECT ADD_MINUTE(’15-08-2019 10:01:30’,30)

4.1.3.    ADD_HOUR

Thêm một khoảng thời gian (tính bằng giờ) vào một trường dữ liệu ngày tháng.

Cú pháp:

ADD_HOUR (truong_du_lieu_thoi_gian DATETIME, gia tri INT) => DATETIME

·       truong_du_lieu_thoi_gian: Biểu thức hoặc cột trả về kiểu dữ liệu thời gian/ngày tháng.

·       gia_tri: Số giờ cần thêm.

Ví dụ:

SELECT ADD_HOUR(’15-08-2019 10:01:30’,5)
-- 15-08-2019 15:01:30

4.1.4.    ADD_DAY

Thêm một khoảng thời gian (tính bằng ngày) vào một trường dữ liệu ngày tháng.

Cú pháp:

ADD_DAY (truong_du_lieu_thoi_gian DATETIME, gia tri INT) => DATETIME

·       truong_du_lieu_thoi_gian: Biểu thức hoặc cột trả về kiểu dữ liệu thời gian/ngày tháng.

·       gia_tri: Số ngày cần thêm.

Ví dụ:

SELECT ADD_DAY(’15-08-2019 10:01:30’,30)
-- 15-08-2019 10:01:30

4.1.5.    ADD_WEAK

Thêm một khoảng thời gian (tính bằng tuần) vào một trường dữ liệu ngày tháng.

Cú pháp:

ADD_WEAK (truong_du_lieu_thoi_gian DATETIME, gia tri INT) => DATETIME

·       truong_du_lieu_thoi_gian: Biểu thức hoặc cột trả về kiểu dữ liệu thời gian/ngày tháng.

·       gia_tri: Số tuần cần thêm.

Ví dụ:

SELECT ADD_WEAK(’15-08-2019 10:01:30’,30)
-- 15-08-2019 10:02:00

4.1.6.    ADD_MONTH

Thêm một khoảng thời gian (tính bằng tháng) vào một trường dữ liệu ngày tháng.

Cú pháp:

ADD_MONTH (truong_du_lieu_thoi_gian DATETIME, gia tri INT) => DATETIME

·       truong_du_lieu_thoi_gian: Biểu thức hoặc cột trả về kiểu dữ liệu thời gian/ngày tháng.

·       gia_tri: Số tháng cần thêm.

Ví dụ:

SELECT ADD_MONTH(’15-08-2019 10:01:30’,6)
-- 15-12-2019 10:01:30

4.1.7.    ADD_QUARTER

Thêm một khoảng thời gian (tính bằng quý) vào một trường dữ liệu ngày tháng.

Cú pháp:

ADD_QUARTER (truong_du_lieu_thoi_gian DATETIME, gia_tri INT) => DATETIME

·       truong_du_lieu_thoi_gian: Biểu thức hoặc cột trả về kiểu dữ liệu thời gian/ngày tháng.

·       gia_tri: Số quý cần thêm.

Ví dụ:

SELECT ADD_QUARTER(’15-08-2019 10:01:30’,1)
-- 15-11-2019 10:01:30

4.1.8.    ADD_YEAR

Thêm một khoảng thời gian (tính bằng năm) vào một trường dữ liệu ngày tháng.

Cú pháp:

ADD_YEAR (truong_du_lieu_thoi_gian DATETIME, gia tri INT) => DATETIME

·       truong_du_lieu_thoi_gian: Biểu thức hoặc cột trả về kiểu dữ liệu thời gian/ngày tháng.

·       gia_tri: Số năm cần thêm.

Ví dụ:

SELECT ADD_YEAR(’15-08-2019 10:01:30’,5)
-- 15-08-2024 10:01:30

4.1.9.    SECOND

Trả về giá trị giây(từ 0 -59) trong trường dữ liệu thời gian.

Cú pháp:

SECOND (truong_du_lieu_thoi_gian DATETIME) => INT

·       truong_du_lieu_thoi_gian: Biểu thức hoặc cột trả về kiểu dữ liệu thời gian/ngày tháng.

Ví dụ:

SELECT SECOND(’15-08-2019 10:01:30’)
-- 30

4.1.10. MINUTE

Trả về giá trị phút (từ 0 -59) trong trường dữ liệu thời gian.

Cú pháp:

MINUTE (truong_du_lieu_thoi_gian DATETIME) => INT

·       truong_du_lieu_thoi_gian: Biểu thức hoặc cột trả về kiểu dữ liệu thời gian/ngày tháng.

Ví dụ:

SELECT MINUTE(’15-08-2019 10:01:30’)
-- 1

4.1.11. HOUR

Trả về giá trị giờ (từ 0- 23) trong trường dữ liệu thời gian.

Cú pháp:

HOUR (truong_du_lieu_thoi_gian DATETIME) => INT

·       truong_du_lieu_thoi_gian: Biểu thức hoặc cột trả về kiểu dữ liệu thời gian/ngày tháng.

Ví dụ:

SELECT HOUR(’15-08-2019 10:01:30’)
-- 10

4.1.12. DAY

Trả về giá trị ngày (từ 1- 31) trong trường dữ liệu thời gian.

Cú pháp:

DAY (truong_du_lieu_thoi_gian DATETIME) => INT

·       truong_du_lieu_thoi_gian: Biểu thức hoặc cột trả về kiểu dữ liệu thời gian/ngày tháng.

Ví dụ:

SELECT DAY(’15-08-2019 10:01:30’)
-- 15

4.1.13. MONTH

Trả về giá trị tháng (từ 1- 12) trong trường dữ liệu thời gian.

Cú pháp:

MONTH (truong_du_lieu_thoi_gian DATETIME) => INT

·       truong_du_lieu_thoi_gian: Biểu thức hoặc cột trả về kiểu dữ liệu thời gian/ngày tháng.

Ví dụ:

SELECT SECOND(’15-08-2019 10:01:30’)
-- 8

4.1.14. QUARTER

Trả về giá trị quý (từ 1- 4) trong trường dữ liệu thời gian.

Cú pháp:

QUARTER (truong_du_lieu_thoi_gian DATETIME) => INT

·       truong_du_lieu_thoi_gian: Biểu thức hoặc cột trả về kiểu dữ liệu thời gian/ngày tháng.

Ví dụ:

SELECT QUARTER(’15-08-2019 10:01:30’)
-- 3

4.1.15. YEAR

Trả về giá trị năm trong trường dữ liệu thời gian.

Cú pháp:

YEAR (truong_du_lieu_thoi_gian DATETIME) => INT

·       truong_du_lieu_thoi_gian: Biểu thức hoặc cột trả về kiểu dữ liệu thời gian/ngày tháng.

Ví dụ:

SELECT YEAR(’15-08-2019 10:01:30’)
-- 2019

4.1.16. LASTDAY

Trả về ngày cuối cùng trong tháng với trường dữ liệu thời gian.

Cú pháp:

LASTDAY (truong_du_lieu_thoi_gian DATETIME) => DATETIME

·       truong_du_lieu_thoi_gian: Biểu thức hoặc cột trả về kiểu dữ liệu thời gian/ngày tháng.

Ví dụ:

SELECT LASTDAY(’15-08-2019 10:01:30’)
-- 31-08-2019 10:01:30

4.1.17. TRUNC_SECOND

Trả về giá trị thời gian với độ chính xác được tính theo giây.

Cú pháp:

TRUNC_SECOND (truong_du_lieu_thoi_gian DATETIME)  => INT

·       truong_du_lieu_thoi_gian: Biểu thức hoặc cột trả về kiểu dữ liệu thời gian/ngày tháng.

Ví dụ:

SELECT TRUNC_SECOND(’15-08-2019 10:01:30’)
-- 15-08-2019 10:01:30

4.1.18. TRUNC_MINUTE

Trả về giá trị thời gian với độ chính xác được tính theo phút.

Cú pháp:

 TRUNC_ MINUTE (truong_du_lieu_thoi_gian)  => DATETIME

·       truong_du_lieu_thoi_gian: Biểu thức hoặc cột trả về kiểu dữ liệu thời gian/ngày tháng.

Ví dụ:

SELECT TRUNC_ MINUTE(’15-08-2019 10:01:30’)
-- 15-08-2019 10:01:00

4.1.19. TRUNC_HOUR

Trả về giá trị thời gian với độ chính xác được tính theo giờ.

Cú pháp:

 TRUNC_HOUR (truong_du_lieu_thoi_gian DATETIME)  => DATETIME

·       truong_du_lieu_thoi_gian: Biểu thức hoặc cột trả về kiểu dữ liệu thời gian/ngày tháng.

Ví dụ:

SELECT TRUNC_HOUR(’15-08-2019 10:01:30’)
-- 15-08-2019 10:00:00

4.1.20. TRUNC_DAY

Trả về giá trị thời gian với độ chính xác được tính theo ngày.

Cú pháp:

 TRUNC_DAY (truong_du_lieu_thoi_gian DATETIME)  => DATETIME

·       truong_du_lieu_thoi_gian: Biểu thức hoặc cột trả về kiểu dữ liệu thời gian/ngày tháng.

Ví dụ:

SELECT TRUNC_DAY (’15-08-2019 10:01:30’)
-- 15-08-2019 00:00:00

4.1.21. TRUNC_WEEK

Trả về giá trị thời gian với độ chính xác được tính theo tuần.

Cú pháp:

 TRUNC_WEEK (truong_du_lieu_thoi_gian DATETIME)  => DATETIME

·       truong_du_lieu_thoi_gian: Biểu thức hoặc cột trả về kiểu dữ liệu thời gian/ngày tháng.

Ví dụ:

SELECT TRUNC_WEEK(’15-08-2019 10:01:30’)
-- 04-08-2019 00:00:00

4.1.22. TRUNC_MONTH

Trả về giá trị thời gian với độ chính xác được tính theo tháng.

Cú pháp:

 TRUNC_MONTH (truong_du_lieu_thoi_gian DATETIME)  => DATETIME

·       truong_du_lieu_thoi_gian: Biểu thức hoặc cột trả về kiểu dữ liệu thời gian/ngày tháng.

Ví dụ:

SELECT TRUNC_MONTH(’15-08-2019 10:01:30’)
-- 01-08-2019 00:00:00

4.1.23. TRUNC_QUARTER

Trả về giá trị thời gian với độ chính xác được tính theo quý.

Cú pháp:

 TRUNC_QUARTER (truong_du_lieu_thoi_gian DATETIME)  =>  DATETIME

·       truong_du_lieu_thoi_gian: Biểu thức hoặc cột trả về kiểu dữ liệu thời gian/ngày tháng.

Ví dụ:

SELECT TRUNC_QUARTER(’15-08-2019 10:01:30’)
-- 01-07-2019 00:00:00

4.1.24. TRUNC_YEAR

Trả về giá trị thời gian với độ chính xác được tính theo năm.

Cú pháp:

 TRUNC_YEAR (truong_du_lieu_thoi_gian DATETIME)  => DATETIME

·       truong_du_lieu_thoi_gian: Biểu thức hoặc cột trả về kiểu dữ liệu thời gian/ngày tháng.

Ví dụ:

SELECT TRUNC_YEAR(’15-08-2019 10:01:30’)
-- 01-01-2019 00:00:00

4.1.25. DOM

Trả về thứ tự ngày trong tháng từ một biểu thức thời gian.

Cú pháp:

 DOM (truong_du_lieu_thoi_gian DATETIME) => INT

·       truong_du_lieu_thoi_gian: Biểu thức hoặc cột trả về kiểu dữ liệu thời gian/ngày tháng.

Ví dụ:

SELECT DOM(’15-08-2019 10:01:30’)
-- 15

4.1.26. DOW

Trả về thứ tự ngày trong tuần từ một biểu thức thời gian.

Cú pháp:

DOW (truong_du_lieu_thoi_gian DATETIME) => INT

·       truong_du_lieu_thoi_gian: Biểu thức hoặc cột trả về kiểu dữ liệu thời gian/ngày tháng.

SELECT DOW(’15-08-2019 10:01:30’)
-- 4(15-08-2019 là thứ 5, 4 là thứ tự của thứ 5 trong tuần)

4.1.27. DOY

Trả về thứ tự ngày trong năm từ một biểu thức thời gian.

Cú pháp:

DOY (truong_du_lieu_thoi_gian DATETIME) => INT

·       truong_du_lieu_thoi_gian: Biểu thức hoặc cột trả về kiểu dữ liệu thời gian/ngày tháng.

SELECT DOY(’15-08-2019 10:01:30’)
-- 227(Năm 2019 có 365 ngày, 15-08-2019 là ngày thứ 227)

4.1.28. WOY

Trả về thứ tự tuần trong năm từ một biểu thức thời gian.

Cú pháp:

WOY (truong_du_lieu_thoi_gian DATETIME) => INT

·       truong_du_lieu_thoi_gian: Biểu thức hoặc cột trả về kiểu dữ liệu thời gian/ngày tháng.

SELECT WOY(’15-08-2019 10:01:30’)
-- 33(Một năm có 54 tuần, ngày 15-08-2019 là tuần thứ 33 trong năm)

4.1.29. YWEEK

Trả về thứ tự tuần trong năm từ một biểu thức thời gian.

Cú pháp:

YWEEK (truong_du_lieu_thoi_gian DATETIME) => INT

·       truong_du_lieu_thoi_gian: Biểu thức hoặc cột trả về kiểu dữ liệu thời gian/ngày tháng.

Ví dụ:

SELECT YWEEK(’15-08-2019 10:01:30’)
-- 33

4.1.30. EPOCH

Tính số giây đã trôi qua từ một mốc dữ liệu thời gian so với ngày 1 tháng 1 năm 1970 lúc 00:00:00 giờ UTC.

Cú pháp:

EPOCH (truong_du_lieu_thoi_gian DATETIME)  => BIGINT

·       truong_du_lieu_thoi_gian: Biểu thức hoặc cột trả về kiểu dữ liệu thời gian/ngày tháng.

Ví dụ:

SELECT EPOCH(’24/06/2024 10:01:30’)
-- 1719223290

SELECT EPOCH(’01/01/1970 00:00:00’)
-- 0

4.2. Hàm toán học

4.2.1.    ABS

Tính giá trị tuyệt đối của một biểu thức số.

Cú pháp:

ABS (truong_du_lieu_so Số)  => Số

·       truong_du_lieu_so: Trường dữ liệu dạng số cần tính giá trị tuyệt đối.

Ví dụ về ABS:

SELECT ABS(-10)
-- 10
SELECT ABS(0)
-- 0

 

4.4.2.    ACOS

Tính arccosine của một biểu thức số.

Cú pháp:

ACOS (truong_du_lieu_so Số)  => DOUBLE

·       truong_du_lieu_so: Số có đơn vị là radians và kiểu dữ liệu dạng số.

Ví dụ về ACOS:

SELECT ACOS(0)
-- 1.5707963267948966
SELECT ACOS(1.0)
-- 0
SELECT ACOS(-1)
-- 3.141592653589793

4.2.3.    ADD

Tính giá trị của phép cộng giữa hai trường dữ liệu dạng số hoặc một trường dữ liệu và một số.

Cú pháp:

ADD (truong_du_lieu_so_1 Số, truong_du_lieu_so_2 Số) => Số

·       truong_du_lieu_so_1: DOUBLE, INTEGER, BIGINT, DECIMAL, hoặc FLOAT.

·       truong_du_lieu_so_2: DOUBLE, INTEGER, BIGINT, DECIMAL, hoặc FLOAT.

Ví dụ về ADD với dữ liệu số :

Select ADD(2, 3)
-- 6

Ví dụ về ADD cột "col" có hai giá trị [2,3,4]:

Select ADD(col, 3)
-- 5
-- 6
-- 7

 

4.2.4.    ASIN

Tính arcsine của một biểu thức số.

Cú pháp:

ASIN (truong_du_lieu_so Số)  => DOUBLE

·       truong_du_lieu_so: Số có đơn vị là radians và kiểu dữ liệu dạng số.

Ví dụ về Asin:

SELECT ASIN(0)
-- 0.0
SELECT ASIN(1)
-- 1.5707963267948966
SELECT ASIN(-1)
-- -1.5707963267948966

4.2.5.    ATAN

Tính arctang của một biểu thức số.

Cú pháp:

ATAN (truong_du_lieu_so Số)  => DOUBLE

·       truong_du_lieu_so: Số có đơn vị là radians và kiểu dữ liệu dạng số.

Ví dụ về ATAN:

SELECT ATAN(-1)
-- -0.7853981633974483
SELECT ATAN(19564.7)
-- 1.5707452143321894

 

4.2.6.    ATAN2

Tính arctang của tỷ số giữa hai trường dữ liệu.

Cú pháp:

ATAN2 (y Số, x Số)  => DOUBLE

·       y: Giá trị đầu vào kiểu số thực đại diện cho tọa độ y, nằm trong khoảng từ âm vô cùng đến dương vô cùng.

·       x: Giá trị đầu vào kiểu số thực đại diện cho tọa độ x, nằm trong khoảng từ âm vô cùng đến dương vô cùng.

Ví dụ về ATAN2:

SELECT ATAN2(1,0)
-- 1.5707452143321894
SELECT ATAN2(0.0,1.0)
-- 0
SELECT ATAN2(0.0,-1.0)
-- 3.141592653589793
SELECT ATAN2(-0.00000000001,-1.0)
-- -3.141592653579793

4.2.7.    CBRT

Tính căn bậc 3 của các hàng trong một trường dữ liệu.

Cú pháp:

CBRT (truong_du_lieu_so Số)  => DOUBLE

·       truong_du_lieu_so: trường dữ liệu dạng số cần tính căn bậc 3.

Ví dụ về CBRT:

SELECT CBRT(5)
-- 1.709975946676697
SELECT CBRT(120)
-- 4.932424148653812
SELECT CBRT(99.5)
-- 4.638049208321277

4.2.8.    CEIL

Trả về giá trị bằng hoặc lớn hơn gần nhất nếu là số thập phân của các hàng trong trường dữ liệu đầu vào.

Cú pháp:

 CEIL (truong_du_lieu_so Số)  => INT

Ví dụ về CEIL:

SELECT CEIL(37.775420706711)
-- 38
SELECT CEIL(3.1459)
-- 4
SELECT CEIL(-37.775420706711)
-- -37
SELECT CEIL(0)
-- 0

 

4.2.9.    COS

Tính cosine của một biểu thức số.

Cú pháp:

COS (truong_du_lieu_so Số)  => DOUBLE

·       truong_du_lieu_so: Số có đơn vị là radians và kiểu dữ liệu dạng số.

 Ví dụ về COS:

SELECT COS(0)
-- 1.0
SELECT COS(1.0)
-- 0.5403023058681398
SELECT COS(-1)
-- 0.5403023058681398

 

4.2.10. COSH

Tính hyperbolic cosine của một biểu thức số.

Cú pháp:

COSH (truong_du_lieu_so Số)  => DOUBLE

·       truong_du_lieu_so: Số có đơn vị là radians và kiểu dữ liệu dạng số.

Ví dụ về COSH:

SELECT COSH(0)
-- 1.0
SELECT COSH(1.0)
-- 1.543080634815244
SELECT COSH(-1)
-- 1.543080634815244

 

4.2.11. COT

Tính cotang của một biểu thức số.

Cú pháp:

COT (truong_du_lieu_so Số)  => DOUBLE

·       truong_du_lieu_so: Số có đơn vị là radians và kiểu dữ liệu dạng số.

Ví dụ về COT:

SELECT COT(0)
-- 1.0
SELECT COT(1.0)
-- 0.6420926159343306
SELECT COT(-1)
-- -0.6420926159343306

 

4.2.12. DEGRESS

Chuyển đổi đơn vị từ Radians sang Degress (Độ)

Cú pháp:

DEGRESS (truong_du_lieu_so Số)  => DOUBLE

·       truong_du_lieu_so: Số có đơn vị là radians và có kiểu dữ liệu dạng số.

Ví dụ về DEGRESS:

SELECT DEGRESS(0)
-- 0.0
SELECT DEGRESS(-1)
-- 57.29577951308232

4.2.13. DIV

Tính kết quả của phép chia giữa hai biểu thức đầu vào

Cú pháp:

 DIV (truong_du_lieu_so_1 Số, truong_du_lieu_so_2 Số)  => Số

·       truong_du_lieu_so_1: Số bị chia

·       truong_du_lieu_so_2: Số chia, có thể là một số cụ thể hoặc một trường dữ liệu dạng số.

Ví dụ về DIV:

SELECT DIV(6,2)
-- 3
SELECT DIV(revenue,order)
-- 3
-- 8
-- 9

4.2.14. DIVIDE

Tính kết quả của phép chia lấy số nguyên giữa hai biểu thức số

Cú pháp:

 DIVIDE (truong_du_lieu_so_1 Số, truong_du_lieu_so_2 Số)  => Giá trị dạng số

·       truong_du_lieu_so_1: Số bị chia

·       truong_du_lieu_so_2: Số chia

Ví dụ về DIVIDE:

SELECT DIVIDE(revenue,2)
-- 1
-- 9
-- 20

4.2.15. EXP

Tính lũy thừa của số e (cơ số của logarit tự nhiên, xấp xỉ 2.718281...) với số mũ lần lượt là các giá trị trong một trường dữ liệu.

Cú pháp:

EXP (truong_du_lieu_so Số)  => DOUBLE

·       truong_du_lieu_so: Giá trị số mũ để nâng e lên

Ví dụ về EXP:

SELECT EXP(1)
-- 2.718281828459045
SELECT EXP(10.0)
-- 22026.465794806718

4.2.16. FACTORIAL

Tính giai thừa của một giá trị số.

Cú pháp:

 FACTORIAL (gia_tri INT)  => BIGINT

·       gia_tri: Giá trị số nguyên từ 0- 20 trong một trường dữ liệu.

Ví dụ về FACTORIAL:

SELECT FACTORIAL(5)
-- 120
SELECT FACTORIAL(20)
-- 2432902008176640000

4.2.17. FLOOR

Trả về giá trị bằng hoặc nhỏ hơn gần nhất nếu là số thập phân của trường dữ liệu đầu vào.

Cú pháp:

 FLOOR (truong_du_lieu_so Số)  => INT

·       truong_du_lieu_so: Giá trị số lớn hơn 0

Ví dụ về FLOOR:

SELECT FLOOR(0)
-- 0
SELECT CEIL(45.76)
-- 45
SELECT FLOOR(-1.3)
-- -2

4.2.18. LOG

Tính logarit tự nhiên của các giá trị trong một trường dữ liệu.

Cú pháp:

 LOG (truong_du_lieu_so Số)  => DOUBLE

·       truong_du_lieu_so: Giá trị số lớn hơn 0.

Ví dụ về LOG:

SELECT LOG(0)
-- null
SELECT LOG(1)
-- 0
SELECT LOG(5)
-- 1.6094379124341003

4.2.19. LOG10

Tính logarit cơ số 10 của trường dữ liệu đầu vào dạng số.

Cú pháp:

 LOG10 (truong_du_lieu_so Số)  => Giá trị dạng số

·       truong_du_lieu_so: Giá trị số lớn hơn 0.

Ví dụ về LOG10:

SELECT LOG10(20.5)
-- 1.3117538610557542
SELECT LOG10(100)
-- 2.0

 

4.2.20. LOG1P

Tính logarit tự nhiên của 1 cộng một giá trị trong trường dữ liệu dạng số.

Cú pháp:

 LOG1P (truong_du_lieu_so Số)  => Giá trị dạng số

·       truong_du_lieu_so: Giá trị số lớn hơn -1.

Ví dụ về LOG1P

SELECT LOG1P(0)
-- 0
SELECT LOG1P(0.6931471805599453)
-- 0
SELECT LOG1P(5)
-- 1.791759469228055

4.2.21. MULTIPLY

Tính kết quả của phép nhân giữa các dòng trong hai trường dữ liệu dạng số.

Cú pháp:

MULTIPLY (truong_du_lieu_so Số)  => Giá trị dạng số

·       truong_du_lieu_so: Giá trị của biểu thức muốn tính logarit.

Ví dụ về MULTIPLY:

SELECT MULTIPLY(10,2)
-- 20
SELECT MULTIPLY(-2.0,2.0)
-- -4.0
SELECT MULTIPLY(0,2)
-- 0

4.2.22. RADIANS

Chuyển đổi đơn vị từ Degress (Độ) sang Radians

Cú pháp:

RADIANS (x Số)  => DOUBLE

·       x: Số có đơn vị là degress và kiểu dữ liệu là DOUBLE, INTEGER, BIGINT, DECIMAL, hoặc FLOAT.

Ví dụ về RADIANS:

SELECT RADIANS(45)
-- 0.7853981633974483

4.2.23. ROUND

Trả về giá trị sau khi làm tròn cho các giá trị đầu vào. Nếu không nhập số lượng chữ số thập phân số nguyên gần nhất sẽ được trả về.

Cú pháp:

ROUND (truong_du_lieu_so Số, Gia_tri INT)  => Số

·       truong_du_lieu_so: Số cần làm tròn.

·       gia_tri: Số lượng chữ số ở phần thập phân.

Ví dụ về ROUND:

SELECT ROUND(24,0)
-- 24
SELECT ROUND(24,-2)
-- 0
SELECT ROUND(24.35,1)
-- 24.4

4.2.24. SIN

Tính sine của một biểu thức số.

Cú pháp:

SIN (truong_du_lieu_so Số)  => DOUBLE

·       truong_du_lieu_so: Số có đơn vị là radians và kiểu dữ liệu là DOUBLE, INTEGER, DECIMAL, hoặc FLOAT.

Ví dụ về SIN:

SELECT SIN(360)
-- 0.9589157234143065
SELECT SIN(510.89)
-- 0.9282211721815067
SELECT SIN(-1)
-- -0.8414709848078965

4.2.25. SINH

Tính hyperbolic sine của một biểu thức số.

Cú pháp:

SINH (truong_du_lieu_so Số)  => DOUBLE

·       truong_du_lieu_so: Số có đơn vị là radians và kiểu dữ liệu dạng số.

 Ví dụ về SINH:

SELECT SINH(1)
-- 1.1752011936438014
SELECT SINH(1.5)
-- 2.1292794550948173

4.2.26. SQRT

Tính căn bậc hai của trường dữ liệu dạng số không âm.

Cú pháp:

SQRT (truong_du_lieu_so Số)  => DOUBLE 

·       truong_du_lieu_so: Trường dữ liệu cần tính căn bậc hai

Ví dụ về SQRT:

SELECT (25.25)
-- 5.024937810560445
SELECT (25)
-- 5.0

 

4.2.26. SUBTRACT

Tính kết quả của phép trừ giữa các dòng trong hai trường dữ liệu dạng số.

Cú pháp:

SUBTRACT (truong_du_lieu_so Số, so_tru Số)  => Giá trị dạng số

·       truong_du_lieu_so: Giá trị của trường dữ liệu được coi như số bị trừ.

·       so_tru: Số trừ, có thể là một trường dữ liệu dạng số hoặc một số cụ thể

Ví dụ về SUBTRACT:

SELECT SUBTRACT (10,2)
-- 8
SELECT SUBTRACT (-2.0,2.0)
-- -4.0
SELECT SUBTRACT(0,2)
-- -2

4.2.28. TAN

Tính tang của một biểu thức số.

Cú pháp:

TAN (truong_du_lieu_so Số)  => DOUBLE

·       truong_du_lieu_so: Số có đơn vị là radians và kiểu dữ liệu là DOUBLE, INTEGER, DECIMAL, hoặc FLOAT

Ví dụ về TAN:

SELECT TAN(180.8)
-- -6.259341891872157
SELECT TAN(1200)
-- -0.08862461268886584

4.2.29. TANH

Tính hyperbolic tang của một biểu thức số.

Cú pháp:

TANH (truong_du_lieu_so Số)  => DOUBLE

·       truong_du_lieu_so: Số có đơn vị là radians và kiểu dữ liệu là: DOUBLE, INTEGER, BIGINT, DECIMAL, hoặc FLOAT.

 Ví dụ về TANH:

SELECT TANH(1.5)
-- 0.9051482536448664
SELECT TANH(1)
-- 0.7615941559557649


4.3. Hàm tổng hợp

4.3.1.    AVG

Tính giá trị trung bình của tất cả các giá trị một trường dữ liệu.

Cú pháp:

AVG (truong_du_lieu_so Số)  => DOUBLE

·       truong_du_lieu_so: Trường dữ liệu cần tính giá trị trung bình với kiểu dữ liệu là DOUBLE, INTEGER, BIGINT, DECIMAL, hoặc FLOAT.

Ví dụ về AVG:

SELECT AVG(1.5)
-- 1.5

Ví dụ về AVG: cột val[0.6348, -1.301466]:

SELECT AVG(“val”)
-- -0.333333

Ví dụ về AVG: với hàm GROUP BY:

SELECT mat_hang, AVG(san_luong)
FROM inet.sample
GROUP BY mat_hang
-- Cà rốt, 3000 
-- Cam sành, 25.25 
-- Ổi, 70 

4.3.2.    COUNT

Đếm tổng số lượng của các giá trị trong trong một trường dữ liệu.

Cú pháp:

COUNT (Truong_du_lieu_so Số)  => BIGINT

·       Truong_du_lieu_so: Trường dữ liệu cần đếm với kiểu dữ liệu dạng số.

Ví dụ về COUNT:

SELECT COUNT(mat_hang)
-- 10

Ví dụ về COUNT: với hàm GROUP BY:

SELECT mat_hang, COUNT(san_luong)
FROM inet.sample
GROUP BY mat_hang
-- Cà rốt, 3 
-- Cam sành, 5 
-- Ổi, 2 

 

4.3.3.    COUNTDISTINCT

Đếm tổng số lượng của các giá trị trong trong một trường dữ liệu.

Cú pháp:

COUNT (truong_du_lieu_so Số)  => BIGINT

·       truong_du_lieu_so: Trường dữ liệu cần đếm với kiểu dữ liệu dạng số

Ví dụ về COUNT: với hàm GROUP BY:

SELECT mat_hang, COUNT(san_luong)
FROM inet.sample
GROUP BY mat_hang
-- Cà rốt, 3 
-- Cam sành, 5 
-- Ổi, 2 

4.3.4.    COUNTEXISTING

4.3.5.    COUNTMISING

4.3.6.    FIRST

4.3.7.    FIRSTQUATILE

4.3.8.    LAST

4.3.9.    MAX

Tính giá trị lớn nhất của các giá trị trong một trường dữ liệu.

Cú pháp:

MAX (truong_du_lieu_so Số)  => BIGINT

·       truong_du_lieu_so: Trường dữ liệu cần đếm với kiểu dữ liệu dạng số

Ví dụ về MAX:

SELECT MAX(san_luong)
-- 300

Ví dụ về MAX: với hàm GROUP BY:

SELECT mat_hang, MAX(san_luong)
FROM inet.sample
GROUP BY mat_hang
-- Cà rốt, 300 
-- Cam sành, 59 
-- Ổi, 272

4.3.10.MEAN

4.3.11.MEDIAN

4.3.12.MIN

Tính giá trị nhỏ nhất của các giá trị trong một trường dữ liệu.

Cú pháp:

MIN (truong_du_lieu_so Số)  => BIGINT

·       truong_du_lieu_so: Trường dữ liệu cần đếm với kiểu dữ liệu dạng số

Ví dụ về MIN:

SELECT MIN(san_luong)
-- 10

Ví dụ về MIN: với hàm GROUP BY:

SELECT mat_hang, MIN(san_luong)
FROM inet.sample
GROUP BY mat_hang
-- Cà rốt, 46
-- Cam sành, 10 
-- Ổi, 39

4.3.13.P25TH

4.3.14.P50TH

4.3.15.P75TH

4.3.16.P90TH

4.3.17.P99TH

4.3.18.SECONDQUARTILE

4.3.19.STD

4.3.20.SUM

Tính tổng của các giá trị trong một trường dữ liệu.

Cú pháp:

SUM (truong_du_lieu_so Số)  => DOUBLE

·       truong_du_lieu_so: Trường dữ liệu tính tổng đếm với kiểu dữ liệu dạng số.

Ví dụ về SUM:

SELECT SUM(san_luong)
-- 10

Ví dụ về SUM: với hàm GROUP BY:

SELECT mat_hang, SUM(san_luong)
FROM inet.sample
GROUP BY mat_hang
-- Cà rốt, 46
-- Cam sành, 10 
-- Ổi, 39

1.1.21.THIRDQUATILE

1.1.22.VARIANCE

4.4. Hàm chuyển đổi

4.4.1.    CASTBIGINT

Chuyển đổi kiểu dữ liệu của một cột thành số nguyên BIGINT.

Cú pháp:

CASTBIGINT (truong_du_lieu_so Số)  => BIGINT

·       truong_du_lieu_so: trường dữ liệu cần chuyển với kiểu dữ liệu là DOUBLE, INTEGER, BIGINT, DECIMAL, hoặc FLOAT.

Ví dụ về CASTBIGINT: cột col[1,2,10.5]:

SELECT CASTBIGINT(col)
-- 1, 2, 10

4.4.2.    CASTDECIMAL

Chuyển đổi kiểu dữ liệu của một cột thành số thực DECIMAL.

Cú pháp:

CASTDECIMAL (truong_du_lieu_so Số)  => DECIMAL

·       truong_du_lieu_so: Trường dữ liệu cần đếm với kiểu dữ liệu là DOUBLE, INTEGER, BIGINT, DECIMAL, hoặc FLOAT.

 Ví dụ về CASTDECIMAL: cột col[1,2,10.5]:

SELECT CASTDECIMAL(col)
-- 1.0 ,2.0 , 10.5

4.4.3.    CASTDOUBLE

Chuyển đổi kiểu dữ liệu của một cột thành nguyên Double.

Cú pháp:

CASTDECIMAL (truong_du_lieu_so Số)  => DOUBLE

·       truong_du_lieu_so: Trường dữ liệu cần đếm với kiểu dữ liệu là DOUBLE, INTEGER, BIGINT, DECIMAL, hoặc FLOAT.

Ví dụ về CASTDECIMAL: cột col[1,2,10.5]:

SELECT CASTDECIMAL(col)
-- 1.0 ,2.0 , 10.5

4.4.4.    CASTFLOAT

Chuyển đổi kiểu dữ liệu của một cột thành số thực Float.

Cú pháp:

CASTDECIMAL (truong_du_lieu_so Số)  => FLOAT

·       truong_du_lieu_so: Trường dữ liệu cần đếm với kiểu dữ liệu là DOUBLE, INTEGER, BIGINT, DECIMAL, hoặc FLOAT.

Ví dụ về CASTDECIMAL: cột col[1,2,10.5]:

SELECT CASTDECIMAL(col)
-- 1.0 ,2.0 , 10.5

4.4.5.    CASTINT

Chuyển đổi kiểu dữ liệu của một cột thành số nguyên Int.

Cú pháp:

CASTDECIMAL (truong_du_lieu_so Số)  => INT

·       truong_du_lieu_so: Trường dữ liệu cần đếm với kiểu dữ liệu là DOUBLE, INTEGER, BIGINT, DECIMAL, hoặc FLOAT.

Ví dụ về CASTDECIMAL: cột col[1,2,10.5]:

SELECT CASTDECIMAL(col)
-- 1 ,2 , 10

4.4.6.    CASTLONG

Chuyển đổi kiểu dữ liệu của một cột thành số nguyên Long.

Cú pháp:

CASTDECIMAL (truong_du_lieu_so Số)  => LONG

·       truong_du_lieu_so: Trường dữ liệu cần đếm với kiểu dữ liệu dạng số

Ví dụ về CASTDECIMAL: cột col[1,2,10.5]:

SELECT CASTDECIMAL(col)
-- 1, 2, 10

4.4.7.    HASH

Trả về giá trị băm cho trường dữ liệu được truyền vào, hàm HASH có giá trị null dù cho giá trị đầu vào null

Cú pháp:

HASH (truong_du_lieu) => BIGINT

·       truong_du_lieu: Giá trị được truyền vào để băm.

Ví dụ về HASH:

SELECT HASH(’Ititan xin chào’)
-- -1965350004
SELECT HASH(’15/08/2019 10:01:30’)
-- -44832748

4.5. Hàm chuỗi

4.5.1.    ASCII

Chuyển kí tự dạng chuỗi thành mã ASCII tương ứng.

Cú pháp:

BTRIM (truong_du_lieu STRING) => STRING

·       truong_du_lieu: Chuỗi được truyền vào để loại bỏ khoảng trắng.

Ví dụ về ASCII:

SELECT ASCII(’iNet solutions’)

-- 105(mã ASCII của ký tự 'i')
SELECT ASCII(’W’)

-- 87

 

4.5.2.    BTRIM

Loại bỏ khoảng trắng ở đầu và cuối kí tự.

Cú pháp:

BTRIM (truong_du_lieu STRING) => STRING

·       truong_du_lieu: Chuỗi được truyền vào để loại bỏ khoảng trắng.

Ví dụ về BTRIM:

SELECT BTRIM(’    Ititan xin chào  ’)

-- Ititan xin chào

 

4.5.3.    CONCAT

Nối hai hoặc nhiều chuỗi lại với nhau thành một chuỗi duy nhất.

Cú pháp:

CONCAT (truong_du_lieu_1 STRING, truong_du_lieu_2 STRING) => Chuỗi

·       truong_du_lieu_1: Chuỗi ban đầu.

·       truong_du_lieu_2: Trường dữ liệu dạng chuỗi hoặc chuỗi.

Ví dụ về CONCAT:

SELECT CONCAT(’Ititan xin chào’,’iNet solutions’)

-- Ititan xin chàoiNet solutions

 

4.5.4.    INITCAP

Chuyển đổi các chuỗi kí tự trong biểu thức với chữ cái đầu tiên của mỗi chữ được viết hoa.

Cú pháp:

INITCAP (truong_du_lieu STRING) => STRING

·       truong_du_lieu: Chuỗi được truyền vào để xử lý.

Ví dụ về INITCAP:

SELECT INITCAP(’ititan xin chào’)

-- Ititan Xin Chào

 

4.5.5.    INSTR

Kiểm tra sự tồn tại của một chuỗi con bên trong một chuỗi lớn hơn.

Cú pháp:

INITCAP (truong_du_lieu STRING, chuoi_con STRING) => BOOL

·       truong_du_lieu: Chuỗi được truyền vào để xử lý.

·       chuoi_con: Chuỗi được truyền vào để so sánh

Ví dụ về INSTR:

SELECT INSTR(’ititan xin chào’,’iti’)

-- 1
SELECT INSTR(’ititan xin chào’,’abc’)

-- 0

 

4.5.6.    LENGTH

Trả về độ dài của chuỗi kí tự.

Cú pháp:

LENGTH (truong_du_lieu STRING) => INT

·       truong_du_lieu: Chuỗi được truyền vào để lấy độ dài.

Ví dụ về LENGTH:

SELECT LENGTH(’Ititan xin chào’)

-- 15

4.5.7.    LOWER

Trả về tất cả các kí tự trong một chuỗi thành chữ không in hoa.

Cú pháp:

LOWER (truong_du_lieu STRING) => STRING

·       truong_du_lieu: Chuỗi được truyền vào để viết hoa.

Ví dụ về LOWER:

SELECT LOWER(’ITITAN XIN CHÀO’)

-- ititan xin chào

 

4.5.8.    LPAD

Thêm kí tự được chỉ định hoặc khoảng trắng cho đến khi chuỗi đạt đủ số lượng.

Cú pháp:

LPAD (truong_du_lieu STRING, do_dai INT, ki_tu STRING) => Chuỗi

·       truong_du_lieu: Chuỗi được truyền vào để thêm kí tự.

·       do_dai: Số lượng kí tự.

·       ki_tu: kí tự hoặc chuỗi để thêm.

Ví dụ về LPAD:

SELECT LPAD(’Ititan xin chào’, 20, ’ ’)

--      Ititan xin chào
SELECT LPAD(’iNet Solution’, 18, ’i’)

-- iiiiiiNet Solution

Lưu ý: Nếu ki_tu không được nhập vào, giá trị mặc định là khoảng trắng sẽ được thêm. Nếu chuỗi lớn hơn do_dai sẽ trả về chuỗi gốc ban đầu.

 

4.5.9.    LTRIM

Trả về giá trị lặp lại của các kí tự trong trường dữ liệu.

Cú pháp:

LTRIM (truong_du_lieu STRING) => STRING

·       truong_du_lieu: Chuỗi được truyền vào để loại bỏ khoảng trắng.

Ví dụ về LTRIM:

SELECT LTRIM(’iTitan xin chào’)

-- iTitan xin chào

 

4.5.10. MASK_FIRST

Giấu một số ký tự đầu tiên của trường dữ liệu dạng chuỗi.

Cú pháp:

MASK_FIRST (truong_du_lieu STRING, do_dai) => STRING

·       truong_du_lieu: Chuỗi được truyền vào để loại bỏ khoảng trắng.

·       do_dai: số kí tự cần che giấu.

Ví dụ về MASK_FIRST:

SELECT MASK_FIRST(’Ititan xin chào’,4)

-- Xxxxan xin chào

 

4.5.11. MASK_LAST

Giấu một số ký tự đầu tiên của trường dữ liệu dạng chuỗi

Cú pháp:

MASK_LAST (truong_du_lieu String, do_dai) => String

·       truong_du_lieu: Chuỗi được truyền vào để loại bỏ khoảng trắng.

·       do_dai: số kí tự cần che giấu.

Ví dụ về MASK_LAST:

SELECT MASK_LAST(’Ititan xin chào’,5)

-- Ititan xinxxxxx

 

4.5.12. REPEAT

Trả về giá trị lặp lại của các kí tự trong trường dữ liệu.

Cú pháp:

REVERSE (truong_du_lieu STRING, so_lan_lap INT) => STRING

·       truong_du_lieu: Chuỗi được truyền vào để lặp.

·       so_lan_lap: Số lần lặp lại các kí tự

Ví dụ về REPEAT:

SELECT REPEAT(’Ititan xin chào’)

-- Ititan xin chàoItitan xin chàoItitan xin chào

 

4.5.13. REPLACE

Tìm kiếm và thay thế giá trị của một chuỗi kí tự.

Cú pháp:

REPLACE (truong_du_lieu STRING, ki_tu_1 STRING, ki_tu_2 STRING) => STRING

·       truong_du_lieu: Chuỗi được truyền vào để thêm kí tự.

·       ki_tu_1: Kí tự tìm kiếm.

·       ki_tu_2: Kí tự thay thế.

Ví dụ về REPLACE:

SELECT REPLACE(’Ititan xin chào’, ’i’, ’y’)

-- Itytan xyn chào
SELECT REPLACE(’iNet Solution’, ’Solution’, ’xin chào’)

-- iNet xin chào

 

4.5.14. REVERSE

Đảo ngược vị trí các kí tự của chuỗi trong biểu thức.

Cú pháp:

REVERSE (truong_du_lieu STRING) => STRING

·       truong_du_lieu: Chuỗi được truyền vào để đảo ngược.

Ví dụ về REVERSE:

SELECT REVERSE(’Ititan xin chào’)

-- oàhC nix natitI

 

4.5.15. RTRIM

Loại bỏ các kí tự khoảng trắng ở cuối chuỗi kí tự.

Cú pháp:

RTRIM (truong_du_lieu STRING) => STRING

·       truong_du_lieu: Chuỗi được truyền vào để loại bỏ khoảng trắng.

Ví dụ về RTRIM:

SELECT RTRIM(’Ititan xin chào    ’)

-- Ititan xin chào

 

4.5.16. STRPOS

Trả về vị trí lần đầu tiên xuất hiện của kí tự trong chuỗi.

Cú pháp:

STRPOS (truong_du_lieu STRING, ki_tu STRING) => INT

·       truong_du_lieu: Chuỗi được truyền vào để thêm kí tự.

·       ki_tu: Kí tự tìm kiếm.

Ví dụ về STRPOS:

SELECT STRPOS(’Ititan xin chào’, ’i’)

-- 3
SELECT STRPOS(’iNet Solution’, ’iNet’)

-- 1
SELECT STRPOS(’iNet Solution’, ’x’)

-- 0

 

4.5.17.STR_LEFT

Trích xuất một phần chuỗi kí tự bên trái của cột được truyền vào.

Cú pháp:

STR_LEFT (truong_du_lieu STRING, do_dai INT) => STRING

·       truong_du_lieu: Chuỗi được truyền vào để trích xuất.

·       do_dai: Số kí tự muốn trích xuất.

Ví dụ về STR_LEFT:

SELECT STR_LEFT(’Ititan xin chào’,3)

-- Iti

 

4.5.18. STR_RIGHT

Trích xuất một phần chuỗi kí tự bên phải của cột được truyền vào.

Cú pháp:

RTRIM (truong_du_lieu STRING, do_dai INT) => STRING

·       truong_du_lieu: Chuỗi được truyền vào để trích xuất.

·       do_dai: Số kí tự muốn trích xuất.

Ví dụ về RTRIM:

SELECT RTRIM(’Ititan xin chào’,3)

-- hào

 

4.5.19. SUBSTR

Trích xuất một phần chuỗi kí tự bên của trường dữ liệu được truyền vào.

Cú pháp:

STR_LEFT (truong_du_lieu STRING, vi_tri INT, do_dai INT) => STRING

·       truong_du_lieu: Chuỗi được truyền vào để trích xuất.

·       do_dai: Số kí tự muốn trích xuất.

Ví dụ về SUBSTR:

SELECT SUBSTR(’Ititan xin chào’,3,4)

-- itan

 

4.5.20.UPPER

Trả về tất cả các kí tự trong một chuỗi thành chữ in hoa.

Cú pháp:

UPPER (truong_du_lieu STRING) => STRING

·       truong_du_lieu: Chuỗi được truyền vào để in hoa.

Ví dụ về UPPER:

SELECT UPPER(’Ititan xin chào’)

-- ITITAN XIN CHÀO