SELECT @Gender AS [Giới Tính]
2.3.3 Sử dụng hàm của T-SQL trong truy vấn dữ liệu
Trang 47
Hàm AGV() : Hàm này trả về giá trị trung bình của các giá trị trong các trường dữ liệu được chỉ ra trong biểu thức.
Lưu ý: Hàm AVG chỉ được dùng với các trường có kiểu dữ liệu là số. Ngoài ra nó có khả năng loại bỏ giá trị NULL
Ví dụ:
USE Northwind
SELECTAVG(UnitPrice) AS AvgPrice
FROM Products
Hàm SUM() : Hàm này trả về tổng của tất cả các giá trị của trường dữ liệu trong biểu thức. Ngoài ra, bạn có thể dùng tới DISTINCT với SUM để tính tổng cho các giá trị duy nhất của trường dữ liệu trong biểu thức. Các giá trị NULL sẽ bị bỏ qua.
Lưu ý : SUM chỉ dùng cho các trường dữ liệu là kiểu số. Ví dụ:
USE Northwind
SELECTSUM(UnitPrice) AS [Tổng Sản Phẩm]
FROM Products
Hàm COUNT() : Hàm COUNT được sử dụng đếm các bản ghi được select trong chuỗi truy vấn. Hàm này có thể đếm được các giá trị NULL trong biểu thức. Nếu ta dùng nó với từ khóa DISTINCT, COUNT đếm được các giá trị duy nhất. Ngoài ra nó có thể được dùng với các trường số và ký tự.
Lưu ý: Các bạn có thể dùng ký tự * thay cho biểu thức trong hàm COUNT. Bằng cách này chúng ta có thể đếm được tất cả các bản ghi mà không cần quan tâm đến các trường dữ liệu.
Ví dụ: USE Northwind
Trang 48 Hàm SQUARE() : tính bình phương Ví dụ: DECLARE @A INT SET @A=5
SELECTSQUARE(@A)AS [@A Bình Phương]
Hàm ROUND() :
ROUND luôn luôn trả về một giá trị. Nếu chiều dài lớn hơn số lượng các chữ số trước dấu thập phân, ROUND trả về 0.
Round trả về một biểu thức số được làm tròn, bất kể loại dữ liệu, khi chiều dài là một số âm.
Ví dụ Kết quả
ROUND(748.58, -1) 750.00
ROUND(748.58, -2) 700.00
ROUND(748.58, -3) 1000.00
Ví dụ sau minh họa cách sử dụng Round
SELECTROUND(123.9994, 3), ROUND(123.9995, 3) GO
Ví dụ sau minh họa làm tròn và xấp xỉ SELECTROUND(123.4545, 2);
Trang 49 SELECTROUND(123.45,-2);
GO
Ví dụ sau sử dụng hai câu SELECT để chứng minh sự khác biệt giữa làm tròn và cắt xén. Câu lệnh đầu tiên có kết quả làm tròn. Câu lệnh thứ hai có kết quả cắt xén. Hàm CHAR() Ví dụ: USE Northwind; GO
SELECT FirstName +' '+ LastName,+ CHAR(13) + [Address] +CHAR(13)+ HomePhone
FROM Employees
WHERE EmployeeID = 1; GO
Trang 50
Hàm UPPER() , LOWER()
Với cú pháp chung bên dưới của các hàm UPPER, LOWER có kết quả trả về là một chuỗi sau khi đã được chuyển đổi các ký tự bên trong chuỗi thành chữ in (upper), hoặc chữ thường (lower).
Ví dụ : hàm UPPER
USE Northwind; GO
SELECTUPPER(FirstName)+ ' '+UPPER(LastName)AS Fullname
FROM Employees WHERE EmployeeID=1 Ví dụ : hàm LOWER USE Northwind; GO
SELECTLOWER(UPPER(FirstName))+' '+ LOWER(UPPER(LastName))AS Fullname
FROM Employees
WHERE EmployeeID=1
Hàm LEN()
Với cú pháp đơn giản của hàm LEN bên dưới có kết quả trả về là một số nguyên dương dùng để chỉ định chiều dài của một chuỗi chứa bao nhiêu ký tự.
Trang 51
Ví dụ:
USE Northwind; GO
SELECTLEN(FirstName) AS [Length],FirstName
FROM Employees
WHERE EmployeeID=1
Hàm LTRIM(), RTRIM()
Với cú pháp chung bên dưới của các hàm LTRIM, RTRIM có kết quả trả về là một chuỗi đã được cắt bỏ các khoảng trắng ở đầu chuỗi (ltrim) hoặc các khoảng trắng ở cuối chuỗi (rtrim).
Cú pháp : LTRIM (chuổi) RTRIM (Chuổi)
Ví dụ : hàm LTRIM
DECLARE @string_to_trim varchar(60)
SET @string_to_trim =' Five spaces are at the beginning of this string.'
SELECT'Here is the string without the leading spaces: '+
LTRIM(@string_to_trim)
Trang 52
Ví dụ: hàm RTRIM()
DECLARE @string_to_trim varchar(60);
SET @string_to_trim ='Four spaces are after the period in this sentence. ';
SELECT @string_to_trim + ' Next string.';
SELECTRTRIM(@string_to_trim)+' Next string.'; GO