Chúng ta hãy xem xét tại một số những hàm tổng thể khác. Bạn lấy tổng số lượng hàng sử dụng hàm COUNT() . Chẳng hạn, phát biểu sau đây lấy tổng số lượng hàng trong bảng những sản phẩm sử dụng hàm COUNT(): SELECT COUNT(*) FROM Products; Ví dụ này trả lại 77.
Chúng ta xem xét số hàm tổng thể khác Bạn lấy tổng số lượng hàng sử dụng hàm COUNT() Chẳng hạn, phát biểu sau lấy tổng số lượng hàng bảng sản phẩm sử dụng hàm COUNT(): SELECT COUNT(*) FROM Products; Ví dụ trả lại 77 Bạn sử dụng hàm MAX() MIN() để lấy giá trị cực đại cực tiểu Chẳng hạn, phát biểu sau sử dụng hàm để lấy giá trị cực đại cực tiểu cột UnitPrice: SELECT MAX(UnitPrice), MIN(UnitPrice) FROM Products; Ví dụ trả lại 263.5000 2.5000 cho giá trị cực đại cực tiểu tương ứng Bạn sử dụng hàm SUM() để lấy tổng số giá trị không null Chẳng hạn, phát biểu sau lấy tổng giá trị cột UnitPrice cho nhóm hàng sử dụng hàm SUM() SELECT SupplierID, SUM(UnitPrice) AS SumUnitPrice FROM Products GROUP BY SupplierID; Mệnh đề GROUP BY ví dụ trả hàng cho nhóm hàng có giá trị cột SupplierID giống Hàm SUM() tính tổng giá trị cột UnitPrice cho tất hàng bên nhóm trả giá trị đơn Chẳng hạn, SUM() trả 47.0000 cho nhóm có SupplierID Đây tổng giá trị cột UnitPrice cho tất hàng có SupplierID Tương tự, SUM() trả lại 81.4000 nơi SupplierID 2, vân vân Mệnh đề AS ví dụ gán tên cho kết trả hàm SUM() cột có tên SumUnitPrice Hình 4.3 cho thấy kết phát biểu SELECT Hình 4.3: sử dụng gàm SUM() để tính tốn tổng số cột UnitPrice Sử dụng hàm Toán học Những hàm toán học cho phép bạn thực thao tác số, việc lấy giá trị tuyệt đối số Bảng 4.4 liệt kê hàm tốn học sẵn có SQL Server Biểu thức bạn chuyển cho hàm tốn học điển hình cột đơn hay giá trị, trường tính tốn Bảng 4.4: hàm Tốn học HÀM MƠ TẢ ABS(expression) Trả lại giá trị tuyệt đối biểu thức ln ln số dương ACOS(expression) Trả lại arccosine biểu thức ASIN(expression) Trả lại arcsine biểu thức ATAN(expression) Trả lại arctangent biểu thức ATN2(expression1, expression2) Trả lại arctangent góc biểu thức1 biều thức2 CEILING(expression) Trả lại số nguyên nhỏ lớn hay biểu thức COS(expression) Trả lại cosin biểu thức COT(expression) Trả lại tang biểu thức DEGREES(expression) Chuyển đổi góc tính theo radian tới góc tính theo độ EXP(expression) Trả lại giá trị số mũ biểu thức FLOOR(expression) Trả lại số nguyên lớn hay biểu thức LOG(expression) Trả lại lôga tự nhiên biểu thức LOG10(expression) Trả lại lôga số 10 biểu thức PI() Trả lại số toán học Pi POWER(expression, y) Trả lại giá trị biểu thức nâng lên lũy thừa Y RADIANS(expression) Chuyển đổi góc cung cấp tính độ tới góc tính theo radian RAND([expression]) Trả lại số dấu chấm động ngẫu nhiên Biểu thức giá trị khởi đầu mà bạn dùng để phát sinh số ngẫu nhiên ROUND(expression, length [, function]) Trả lại giá trị biểu thức làm tròn hay cắt bỏ phần thập phân định length (độ dài) Tùy chọn function sử dụng để định kiểu thao tác để thực hiện: (mặc định) làm tròn số, giá trị khác cát bỏ số SIGN(expression) Trả lại 1, 0, hay-1 phụ thuộc vào dấu biểu thức Trả lại cho số dương ,0 cho chữ số không, hay-1 cho số âm SIN(expression) Trả lại sin biểu thức SQUARE(expression) Trả lại trị bình phương biểu thức SQRT(expression) Trả lại bậc hai biểu thức TAN(expression) Trả lai tang biểu thức Chúng ta xem xét ví dụ sử dụng số hàm toán học Bạn sử dụng hàm ABS() để lấy giá trị tuyệt đối Ví dụ sau trả lại 10 15: SELECT ABS(-10), ABS(15); Bạn sử dụng hàm ACOS(), ASIN(), ATAN() để lấy arccosine, arcsine, Arctangent số Ví dụ sau trả lại 0.0, 1.5707963267948966, 0.78539816339744828: SELECT ACOS(1), ASIN(1), ATAN(1); Bạn sử dụng hàm CEILING() để lấy số nguyên nhỏ lớn hay với giá trị chuyển cho hàm Ví dụ sau trả lại và-1 SELECT CEILING(1.4), CEILING(-1.4); Bạn sử dụng hàm FLOOR() để lấy số nguyên lớn nhỏ hay với giá trị chuyển cho hàm Ví dụ sau trả lại và-2 SELECT FLOOR(1.4), FLOOR(-1.4); Bạn sử dụng PI() để lấy số Pi toán học Ví dụ sau trả lại 3.1415926535897931 SELECT PI(); Bạn sử dụng hàm POWER() để lấy giá trị số nâng lên với lũy thừa định Ví dụ sau trả lại SELECT POWER(2, 3); /* ( 23 = ) */ Bạn sử dụng hàm ROUND() để lấy giá trị số làm tròn hay cắt bỏ tới chiều dài định Ví dụ sau trả lại 1.23500, từ số 1.23456 làm tròn tới ba chữ số thập phân SELECT ROUND(1.23456, 3); Ví dụ gởi qua số khác không tham số thứ ba đến hàm ROUND(), định số cắt, thay làm trịn làm ví dụ trước đây: SELECT ROUND(1.23456, 3, 1); Ví dụ trả lại 1.23400, từ số 1.23456 cắt bỏ sau ba chữ số thập phân Bạn sử dụng hàm SQUARE() để lấy bình phương số Ví dụ sau trả lại 16.0 SELECT SQUARE(4); Bạn sử dụng hàm SQRT() để lấy bậc hai số Ví dụ sau trả lại 4.0 SELECT SQRT(16); Sử dụng hàm chuỗi Những hàm chuỗi cho phép bạn thao tác chuỗi Chẳng hạn, bạn thay ký tự định chuỗi Bảng 4.5 liệt kê hàm chuỗi sẵn có SQL Server Bảng 4.5: hàm chuỗi HÀM MÔ TẢ ASCII(charExpression) Trả lại mã ASCII cho ký tự bên trái biểu thức chuổi char (charExpression) CHAR(intExpression) Trả lại ký tự tương ứng cho mã ASCII rõ intExpression CHARINDEX (charExpression1, charExpression2 [, start ]) Trả lại vị trí ký tự rõ charExpression1 charExpression2, bắt đầu vị trí tùy chọn rõ start DIFFERENCE (charExpression1, charExpression2) Trả lại khác giá trị SOUNDEX hai biểu thức ký tự Bạn sử dụng mã SOUNDEX để đánh giá giống ngữ âm hai chuỗi Giá trị trả 4; báo hai biểu thức có ngữ âm đồng LEFT(charExpression, intExpression) Trả lại ký tự mút trái rõ intExprssion (số ký tự mút trái cần lấy) từ charExpression (chuỗi ký tự cần lọc) LEN(charExpression) Trả lại số lượng ký tự charExpression (chuỗi ký tự) LOWER(charExpression) Chuyển đổi ký tự charExpression thành ký tự thường trả ký tự LTRIM(charExpression) Loại bỏ khoảng trống từ mút trái chuỗi charExpression trả ký tự lại NCHAR(intExpression) Trả lại ký tự Unicode với mã định biểu thức số intExpression PATINDEX('%pattern%', charExpression) Trả lại vị trí khởi đầu lần xuất mẫu (pattern) có chuỗi charExpression Nếu mẫu khơng tìm thấy chữ số không trả REPLACE (charExpression1, Thay tất xuất chuỗi charExpression2 có charExpression2, charExpression3) chuỗi mẹ charExpression1 với chuỗi thay charExpression3 QUOTENAME ('charString' [ , 'quoteChar' ]) Trả lại chuỗi Unicode với dấu phân cách rõ quoteChar thêm vào để tạo cho charString định danh giới hạn hợp lệ REPLICATE (charExpression, intExpression) Lặp lại chuỗi charExpression với số lần đươc định intExpression REVERSE(charExpression) Đảo ngược trật tự ký tự chuỗi charExpression trả ký tự RIGHT(charExpression, intExpression) Trả lại ký tự mút bên phải chuỗi charExpression với số ký tự trích rõ intExprssion RTRIM(charExpression) Loại bỏ khoảng trống từ cuối bên phải chuỗi charExpression trả ký tự lại SOUNDEX(charExpression) Trả lại mã SOUNDEX bốn ký tự Bạn sử dụng mã để đánh giá giống ngữ âm hai chuỗi SPACE(intExpression) Trả lại chuỗi khoảng cách lặp lại với tổng số lần rõ intExpression STR(floatExpression [ , length [ , decimal ] ]) Chuyển đổi số rõ floatExpression thành ký tự ; length rõ số lượng ký tự mà bạn muốn nhìn thấy (bao gồm chữ số khỏang cách , dấu dương hay dấu trừ dấu phẩy số thập phân thêm vào); số thập phân rõ số lượng chữ số bên phải dấu phẩy số thập phân Số làm tròn cần thiết STUFF (charExpression1, start, length, charExpression2) Xóa ký tự từ chuỗi charExpression1, bắt đầu vị trí định start với tổng số ký tự cần xóa length , chèn ký tự rõ charExpression2 SUBSTRING(expression, start, length) Trả lại phận biểu thức ký tự , nhị phân,văn bản, hay ảnh UNICODE('nCharExpression') Trả lại giá trị Unicode cho ký tự biểu thức nCharExpression -nchar hay nvarchar UPPER(charExpression) Chuyển đổi ký tự chuỗi charExpression thành chữ hoa trả lại ký tự Chúng ta xem xét ví dụ mà sử dụng số hàm chuỗi Bạn sử dụng hàm ASCII() để lấy mã ASCII cho ký tự mút trái biểu thức ký tự cung cấp Ví dụ sau trả lại 65 97 SELECT ASCII('A'), ASCII('a'); Bạn sử dụng hàm CHAR() để lấy ký tự tương ứng tới mã ASCII biểu thức số nguyên cung cấp Ví dụ sau trở lại A a : SELECT CHAR(65), CHAR(97); Bạn sử dụng hàm CHARINDEX() để lấy vị trí ký tự Ví dụ sau trả lại 16, vị trí khởi đầu từ “ ten” : SELECT CHARINDEX('ten', 'Four-score and ten years'); Chú thích : ký tự chuỗi có vị trí 1, 16 làvị trí ký tự “t” tính từ ký tự chuỗi bao gồm dấu cách Bạn sử dụng hàm DIFFERENCE() để thu khác giá trị SOUNDEX hai biểu thức ký tự Ví dụ sau trả lại 4, cho biết Browne 'Browne' có ngữ âm đồng SELECT DIFFERENCE('Brown', 'Browne'); Bạn sử dụng hàm LEFT() để thu ký tự mút trái biểu thức ký tự Ví dụ sau trả lại "Fourscore", 10 ký tự mút trái chuỗi "Four-score and ten years": SELECT LEFT('Four-score and ten years', 10); Bạn sử dụng hàm RIGHT() để thu ký tự mút bên phải biểu thức ký tự Ví dụ sau trả lại "year", năm ký tự mút bên phải chuỗi "Four-score and ten years": SELECT RIGHT('Four-score and ten years', 5); Bạn sử dụng hàm LEN() để thu số cho biết tổng số ký tự (kể kí tự đặc biệt dấu cách) có biểu thức ký tự Ví dụ sau trả lại 24: SELECT LEN('Four-score and ten years'); Bạn sử dụng hàm LOWER() để thu phiên chữ thường biểu thức ký tự Ví dụ sau trả lại "four-score and ten years": SELECT LOWER('FOUR-SCORE AND TEN YEARS'); Bạn sử dụng hàm UPER() để thu phiên chữ hoa biểu thức ký tự Ví dụ sau trả lại "FOUR-SCORE AND TEN YEARS": SELECT UPPER('four-score and ten years'); Bạn sử dụng hàm LTRIM() RTRIM() để loại bỏ khỏang trống bên trái bên phải biểu thức ký tự Ví dụ sau trả lại "FOUR-SCORE" "AND TEN YEARS" (khoảng trống bị loại bỏ): SELECT LTRIM(' FOUR-SCORE'), RTRIM('AND TEN YEARS '); Bạn sử dụng hàm STR() để chuyển đổi giá trị số tới chuỗi có chứa chữ số Tham số số để chuyển đổi, tham số thứ hai tổng số lượng ký tự bạn muốn có chuỗi bạn, tham số thứ ba số lượng chữ số sau dấu phẩy số thập phân Ví dụ sau trả lại 123.46 SELECT STR(123.456, 6, 2); Số 123.456 chuyển đổi tới chuỗi gồm sáu ký tự , với hai chữ số sau dấu phẩy số thập phân, làm tròn Bạn sử dụng hàm STUFF() để thay ký tự Tham số chuỗi bạn muốn thay ký tự đó, tham số thứ hai vị trí ký tự bắt đầu thay thế, tham số thứ ba tổng số lượng ký tự thay tính từ ký tự bắt đầu thay , tham số thứ tư tập hợp ký tự để thay vào Ví dụ sau trả lại "Fivescore and ten": SELECT STUFF('Four-score and ten', 1, 4, 'Five'); Bạn sử dụng hàm SUBSTRING() để lấy phần chuỗi Tham số chuỗi, tham số thứ hai vị trí bắt đầu lấy ra, tham số thứ ba tổng số lượng ký tự cần lấy tính từ vị trí bắt đầu Ví dụ sau trả lại Four: SELECT SUBSTRING('Four-score and ten', 1, 4); Bạn sử dụng hàm UNICODE() để thu giá trị Unicode cho ký tự Ví dụ sau trả lại 65 97 SELECT UNICODE('A'), UNICODE('a'); Sử dụng hàm ngày tháng thời gian Những hàm ngày tháng thời gian cho phép bạn thao tác với ngày tháng thời gian Chẳng hạn, bạn thêm số ngày vào ngày tháng cho Bảng 4.6 liệt kê ngày tháng chức thời gian sẵn có SQL Server Bảng 4.6: hàm ngày tháng thời gian HÀM MÔ TẢ DATEADD(interval, number, date) Trả lại ngày tháng (datetime) kết việc thêm số lượng (number) định đơn vị khoảng thời gian (interval) vào ngày tháng (date) Những khoảng thời gian hợp lệ bao gồm : năm, quý, tháng ,dayofyear, ngày, tuần, giờ, phút, giây, mili-giây (year, quarter, month, dayofyear, day, week, hour, minute, second, and millisecond) DATEDIFF (interval, startDate, endDate) Trả lại chênh lệch startDate endDate, với chênh lệch tính tốn theo đơn vị khoảng thời gian (interval) (năm, quý vân vân) DATENAME(interval, date) Trả lại chuỗi ký tự đại diện cho tên khoảng thời gian (interval) ngày tháng (date) DATEPART(interval, date) Trả lại số nguyên đại diện cho khoảng thời gian (interval) ngày tháng (date) DAY(date) Trả lại số nguyên mà đại diện cho tháng (date) GETDATE() Trả lại ngày tháng (datetime) chứa ngày tháng hệ thống thời GETUTCDATE() Trả lại ngày tháng (datetime) chứa ngày tháng hệ thống thời theo thời gian UTC (Tọa độ quốc tế hay Greenwich) Giờ UTC bắt nguồn từ địa phương thời thiết đặt hệ thống thời gian khu vực MONTH(date) Trả lại số nguyên đại diện cho tháng ngày tháng (date) YEAR(date) Trả lại số nguyên đại diện cho năm ngày tháng (date) Chúng ta xem xét ví dụ sử dụng số hàm ngày tháng thời gian Bạn sử dụng hàm DATEADD() để thêm số khoảng thời gian (intervals) vào ngày tháng Ví dụ sau thêm hai ngày tới ngày tháng 12/ 20/ 2003 trả 2003-12-22 00: 00: 00.000 SELECT DATEADD(day, 2, '12/20/2003'); Bạn sử dụng hàm DATEDIFF() để thu chênh lệch hai ngày tháng Ví dụ sau thu chênh lệch (tính theo ngày) ngày 12/ 20/ 2003 ngày 12/ 22/ 2003 trả ngày SELECT DATEDIFF(day, '12/20/2003', '12/22/2003'); Bạn sử dụng hàm DATENAME() để thu chuỗi ký tự đại diện cho phần tử ngày tháng Ví dụ sau lấy tên tháng 12/ 20/ 2003 December (tháng mười hai) trả SELECT DATENAME(month, '12/20/2003'); Bạn sử dụng phương thức DATEPART() để thu số nguyên đại diện cho phần tử ngày tháng Ví dụ sau lấy số tháng 12/ 20/ 2003 trả lại 12 SELECT DATEPART(month, '12/20/2003'); Bạn sử dụng hàm DAY() để thu số nguyên đại diện cho phần tử ngày tháng Ví dụ sau lấy số ngày 12/ 20/ 2003 trả lại 20 SELECT DAY('12/20/2003'); Bạn sử dụng hàm MONTH() để thu số nguyên đại diện cho phần tử ngày tháng Ví dụ sau lấy số tháng 12/ 20/ 2003 trả lại 12 SELECT MONTH('12/20/2003'); Bạn sử dụng hàm YEAR() để thu số nguyên đại diện cho phần tử ngày tháng Ví dụ sau lấy số năm 12/ 20/ 2003 trả lại 2003 SELECT YEAR('12/20/2003'); Bạn sử dụng hàm GETDATE() để thu ngày tháng hệ thống thời Ví dụ sau trả lại 2002-07-16 12: 59: 50.823 (ngày hôm nay) SELECT GETDATE(); Bạn sử dụng hàm GETUTCDATE() để thu ngày tháng hệ thống thời với thời gian UTC (giờ quốc tế) Ví dụ sau trả lại 2002-07-16 20: 02: 18.123 (giờ quốc tế hôm nay) SELECT GETUTCDATE(); Sử dụng hàm Hệ thống Những hàm hệ thống cho phép bạn thao tác lấy thông tin giá trị, đối tượng thiết định SQL Server Chẳng hạn, bạn chuyển đổi giá trị kiểu tới kiểu khác Bảng 4.7 lĩệt kê số hàm hệ thống sẵn có SQL Server Bảng 4.7: hàm Hệ thống TÊN HÀM MÔ TẢ CONVERT(dataType expression Chuyển đổi giá trị biểu thức (expression) tới kiểu rõ [, style [(length )], ]) dataType Nếu bạn chuyển đổi kiểu nchar, nvarchar, char, varchar, nhị phân, hay kiểu varbinary , bạn rõ tùy chọn length , định chiều dài giá trị Bạn sử dụng tùy chọn style (kiểu) ▪ Chuyển đổi liệu datetime hay smalldatetime tới liệu ký tự; style định dạng cho ngày tháng thời gian ▪ Chuyển đổi liệu float, real, money, or smallmoney tới liệu ký tự ; style định dạng chuỗi cho số Bạn tìm xem chi tiết cho tùy chọn style tài liệu sách trực tuyến Người phục vụ SQL COALESCE(expression1 [ , expressionN]) Trả biểu thức không null danh sách biểu thức DATALENGTH(expression) Trả lại số bytes dùng để trình bày biểu thức @@ERROR Trả lại số đặc trưng lỗi cho phát biểu T- SQL cuối mà thực @@IDENTITY Trả lại giá trị nhận dạng chèn vào sau ISDATE(expression) Trả lại biểu thức ngày tháng hợp lệ, không số trở lại ISNULL(expression, replacementValue) Nếu biểu thức có giá tri null, replacementValue trả lại, cách khác biểu thức trả lại ISNUMERIC(expression) Trả lại biểu thức số hợp lệ, cách khác trở lại NEWID() Trả lại giá trị kiểu uniqueidentifier NULLIF(expression1, expression2) Trả lại giá trị null expression1 expression2 @@ROWCOUNT Trả lại số lượng hàng ảnh hưởng câu lệnh T- SQL thực sau @@TRANCOUNT Trả lại số lượng giao dịch họat động cho kết nối thời (currentconnection) tới sở liệu Chúng ta xem xét ví dụ sử dụng số hàm hệ thống Bạn sử dụng hàm CONVERT() để chuyển đổi giá trị từ kiểu sang kiểu khác Ví dụ sau chuyển đổi số 123.456 tới nvarchar ,và 123.456 trả lại SELECT CONVERT(nvarchar, 123.456); Bạn sử dụng hàm COALESCE() để thu biểu thức không null danh sách Ví dụ sau trả lại 123.456 SELECT COALESCE(null, null, 123.456, null); Bạn sử dụng hàm DATALENGTH() để thu số bytes sử dụng để trình bày biểu thức Ví dụ sau trình bày số bytes dùng để trình bày giá trị cất giữ cột CompanyName bảng khách hàng cho hàng có CustomerID ALFKI: SELECT DATALENGTH(CompanyName), CompanyName FROM Customers WHERE CustomerID = 'ALFKI'; Ví dụ trả lại 38 Alfreds Futterkiste, chứa 19 ký tự ký tự chứa bai, chuỗi 19-ký tự giữ tới 38 bai (2* 19) Bạn sử dụng hàm ISDATE() để xác định phải biểu thức ngày tháng hợp lệ ISDATE() trả biểu thức ngày tháng hợp lệ, cách khác trả lại Ví dụ sau trả lại SELECT ISDATE('12/20/2004'), ISDATE(1234); Bạn sử dụng hàm ISNUMERIC() để xác định phải biểu thức số hợp lệ Ví dụ sau trả lại SELECT ISNUMERIC(1234), ISNUMERIC('abc'); Bạn sử dụng hàm ISNULL() để thay giá trị null với giá trị khác Ví dụ sau trả lại 10 20 SELECT ISNULL(null, 10), ISNULL(20, 10); 10 20 Tạo hàm người dùng định nghĩa Bạn tạo hàm người dùng định nghĩa riêng SQL Server Chẳng hạn, bạn muốn tạo hàm riêng để tính tốn giá chiết khấu từ giá gốc hệ số nhân với giá Bạn tạo hàm sử dụng phát biểu CREATE FUNCTION Có ba kiểu hàm người dùng định nghĩa: Scalar functions: (những hàm vô hướng) trả lại giá trị đơn Giá trị trả thuộc kiểu liệu ngoại trừ text, ntext, image (ảnh), cursor (con trỏ), table, timestamp, kiểu liệu người dùng định nghĩa Inline table-valued functions: (những hàm định trị bảng nội tuyến ) trả đối tượng kiểu bảng Bạn hiểu bảng bảng sở liệu bình thường, ngoại trừ cất giữ nhớ Một "hàm định trị bảng nội tuyến" trả kết truy xuất phát biểu SELECT đơn Multistatement table-valued functions (những hàm định trị bảng nhiều phát biểu): trả đối tượng kiểu bảng Không giống Inline table-valued function, Multistatement table-valued function chứa nhiều phát biểu T- SQL Bạn xem ví dụ ba kiểu hàm mục sau Sử dụng hàm vô hướng Những hàm vô hướng trả lại giá trị đơn Danh sách 4.2 trình bày script DiscountPrice.sql tạo hàm DiscountPrice(), hàm trả giá chiết khấu = giá gốc nhân với hệ số chiết khấu Những giá trị gởi qua tham số tới hàm DiscountPrice() Bạn tải file vào Query Analyzer chạy Danh sách 4.2: DISCOUNTPRICE.SQL /* DiscountPrice.sql creates a scalar function to return the new price of an item given the original price and a discount factor */ CREATE FUNCTION DiscountPrice(@OriginalPrice money, @Discount float) RETURNS money AS BEGIN RETURN @OriginalPrice * @Discount END Những tham số gởi tới hàm đặt cặp dấu móc sau tên hàm phát biểu CREATE FUNCTION Cảnh báo: Bảo đảm bạn chọn sở liệu Northwind từ hộp danh sách xổ xuống công cụ Query Analyzer trước chạy script Bằng cách này, hàm tạo sở liệu Northwind Bạn tạo hàm sử dụng Enterprise Manager Bạn làm điều kích chuột phải node "User Defined Functions" thư mục Databases Rồi bạn cắt dán nội dung DiscountPrice.sql vào hộp thoại Enterprise Manager properties, trình bày Hình 4.4 Hình 4.4: Sử dụng Enterprise Manager để định nghĩa hàm Bạn xem sửa đổi hàm nhấn đúp tên hàm Enterprise Manager Bạn xóa hàm sử dụng Enterprise Manager Object Browser (Bộ duyệt Đối tượng) Query Analyzer (trình phân tích truy vấn) cịn cho phép bạn xem, sửa đổi, xóa hàm Mẹo nhỏ: Bạn xóa hàm sử dụng phát biểu DROP FUNCTION , Bạn sửa đổi hàm sử dụng phát biểu ALTER FUNCTION Một bạn tạo hàm , bạn gọi Khi gọi hàm vơ hướng , bạn sử dụng cú pháp sau đây: owner.functionName Với owner người sử dụng sở liệu -người sở hữu hàm , functionName tên hàm Cho bạn tạo hàm DiscountPrice() sử dụng người sử dụng dbo, bạn gọi hàm sử dụng cú pháp : dbo.DiscountPrice() Ví dụ sau trả 3.0000, tức 10* 0.3 : SELECT dbo.DiscountPrice(10, 0.3); Như với hàm khác, bạn gởi cột tới DiscountPrice() Ví dụ sau trả lại 5.4000 18.0000; 5.4000 = 18.0000* 0.3 SELECT dbo.DiscountPrice(UnitPrice, 0.3), UnitPrice FROM Products WHERE ProductID = 1; Tất nhiên bạn gởi biến tham số tới hàm trước đây, ví dụ trả lại 5.4000 18.0000 DECLARE @MyDiscountFactor float SET @MyDiscountFactor = 0.3 SELECT dbo.DiscountPrice(UnitPrice, @MyDiscountFactor), UnitPrice FROM Products WHERE ProductID = 1; Sử dụng hàm định trị bảng nội tuyến Một hàm định trị bảng nội tuyến (inline table-valued function) trả đối tượng kiểu bảng, cư trú - sử dụng phát biểu SELECT đơn Không giống hàm vô hướng (scalar function), hàm định trị bảng nội ... style (kiểu) ▪ Chuyển đổi liệu datetime hay smalldatetime tới liệu ký tự; style định dạng cho ngày tháng thời gian ▪ Chuyển đổi liệu float, real, money, or smallmoney tới liệu ký tự ; style định... CREATE FUNCTION Cảnh báo: Bảo đảm bạn chọn sở liệu Northwind từ hộp danh sách xổ xuống công cụ Query Analyzer trước chạy script Bằng cách này, hàm tạo sở liệu Northwind Bạn tạo hàm sử dụng Enterprise... bạn gọi Khi gọi hàm vô hướng , bạn sử dụng cú pháp sau đây: owner.functionName Với owner người sử dụng sở liệu -người sở hữu hàm , functionName tên hàm Cho bạn tạo hàm DiscountPrice() sử dụng người