Raằng buộc so sánh năm trong sql năm 2024

CodeLearn is an online platform that helps users to learn, practice coding skills and join the online coding contests.

Links

Learning

Training

Fights

Information

About Us

Terms of Use

Help

Help

Discussion

Powered by CodeLearn © 2024. All Rights Reserved. rev 2/5/2024 5:31:56 PM

Chúng ta đã cùng nhau đi qua phần 1 trong chuỗi series “Tài liệu tự học SQL” về chủ đề giới thiệu SQL và tổng quan SQL cho người mới. Tiếp nối series này, hãy cùng DATAPOT tìm hiểu cụ thể hơn về các kiểu dữ liệu trong SQL thường dùng, cách vận dụng các hàm xử lý dữ liệu sao cho hiệu quả hơn nhé. Nếu bạn nào chưa kịp đọc qua phần 1, hãy ấn ngay tại đây để nắm bắt nội dung từ bài viết đầu tiên luôn nào!

Mục lục

Cách xem thuộc tính của cột (Column properties)

Raằng buộc so sánh năm trong sql năm 2024

Tên cột

Tên của cột đã chọn.

Kiểu dữ liệu

Hiện thị kiểu dữ liệu của cột đã chọn.

Chỉ mục (Index – IX)

Chỉ mục dùng để truy vấn nhanh hơn, giúp giảm số lượng trang dữ liệu cần được đọc để truy vấn dữ liệu trong một câu lệnh SQL.

Một số các ràng buộc (Constraints) được ứng dụng vào các cột hoặc các bảng

  • Giá trị không tồn tại hoặc không xác định (NULL)

Là các cột không có giá trị không tồn tại (NULL VALUE).

  • Giá trị duy nhất (UNIQUE)

Tất cả các giá trị trong cột đều khác nhau.

  • Khóa chính (PRIMARY KEY)

Khóa chính là sự kết hợp của giá trị không tồn tại (NULL VALUE) và giá trị duy nhất (Unique). Tồn tại duy nhất một khóa chính trong một bảng dữ liệu.

  • Khóa ngoại (FOREIGN KEY)

Khóa ngoại là một hoặc nhiều cột trong bảng mà chứa giá trị tham chiếu liên kết với với khóa chính của bảng khác. Khóa chính và khóa ngoại sẽ được nêu trong chapter 3 của textbook này.

  • Kiểm tra (CHECK)

Đảm bảo giá trị trong cột thỏa mãn các điều kiện nhất định.

  • DEFAULT

Đặt một giá trị mặc định cho cột nếu cột không có giá trị nào được chỉ định.

  • Tạo chỉ mục (CREATE INDEX)

Giúp truy vấn dữ liệu nhanh chóng hơn.

Kiểu dữ liệu trong SQL Server (Data type)

Raằng buộc so sánh năm trong sql năm 2024
Một số kiểu dữ liệu thường gặp:

Dữ liệu dạng số.

Dữ liệu dạng số xấp xỉ

  • FLOAT(N): Định dạng dữ liệu được sử dụng để lưu trữ các số thực.
  • REAL: Được sử dụng để lưu trữ số thực, ít chính xác hơn FLOAT().

Dữ liệu dạng số chính xác

  • DECIMAL(p,s): Được sử dụng để lưu trữ số thập phân có độ chính xác cố định.

p là tổng chữ số. s là số chữ số sau số thập phân.

  • NUMERIC(p,s): Kiểu dữ liệu số nguyên

p là tổng chữ số. s là số chữ số thập phân.

Raằng buộc so sánh năm trong sql năm 2024
Giải thích câu lệnh truy vấn:

  • SELECT: Hiển thị kết quả truy vấn.

CAST(243.87989 AS DECIMAL(6, 3)): Chuyển 243.87989 về DECIMAL có tổng 6 chữ số và 3 số thập phân. CAST(243.87989 AS NUMERIC(6, 3)): Chuyển 243.87989 về NUMERIC có tổng 6 chữ số và 3 số thập phân.

  • INT, BIGINT, SMALLINT, TINYINT đều lưu trữ kiểu dữ liệu số nguyên, tuy nhiên sẽ khác nhau về dung lượng và khoảng số nguyên.

![A white rectangular box with black text Description automatically generated with medium confidence](https://https://i0.wp.com/datapot.vn/wp-content/uploads/2023/12/a-white-rectangular-box-with-black-text-descripti.png)

Dữ liệu dạng ký tự

Dữ liệu dạng chuỗi ký tự

  • CHAR[( n | max)]: Lưu trữ chuỗi ký tự có kích thước cố định, tương ứng n.
  • VARCHAR [( n | max)]: Dữ liệu chuỗi có kích thước linh hoạt, kích thước tương ứng n hoặc max.
  • TEXT: Lưu trữ các chuỗi ký tự lớn, định dạng TEXT không có tham biến, nhưng sẽ lưu trữ tối đa trong phạm vi khoảng 2GB, trong khi đó VARCHAR có thể lưu trữ với phạm vi ngắn khoảng 8000 byte.

Dữ liệu dạng chuỗi nhị phân

  • BINARY: Dùng để lưu trữ các dãy byte có độ dài cố định.

Dữ liệu dạng ký tự Unicode

N được viết ở đầu mỗi định dạng cho phép lưu trữ ký tự Unicode.

  • NCHAR [( n | max)]: Lưu trữ chuỗi có độ dài cố định, có kích thước tương ứng n hoặc max và cho phép lưu trữ dưới dạng Unicode.
  • NVARCHAR [( n | max)]: Lưu trữ chuỗi ký tự có độ dài linh hoạt, có kích thước tương ứng n hoặc max, cho phép Unicode.
  • NTEXT: Chuỗi ký tự có độ dài linh hoạt, tối đa lưu trữ khoảng 1073741823 byte, cho phép Unicode.

Dữ liệu dạng ngày & giờ

![A white text with black text Description automatically generated](https://https://i0.wp.com/datapot.vn/wp-content/uploads/2023/12/a-white-text-with-black-text-description-automati-3.png)

Trạng thái NULL của dữ liệu

NULL là dữ liệu không xác định hoặc dữ liệu không có sẵn, NULL không được coi là giá trị. Bất cứ một phép toán nào thực hiện với NULL đều sẽ trả ra NULL. Khi lấy NULL để so sánh với các toán tử như “>”, “<”, “=”, kết quả sẽ trả về kết quả false.

Raằng buộc so sánh năm trong sql năm 2024
Giải thích câu lệnh truy vấn: NULL là trạng thái đáng chú ý của dữ liệu do nó có thể gây ra sai lệnh trong tính toán. Sử dụng * kết hợp giữa NULL và giá trị nhất định sẽ trả ra NULL. Sử dụng toán tử + kết hợp giữa NULL và giá trị nhất định sẽ trả ra NULL.

Bạn có thể kiểm tra kiểu dữ liệu trong bảng bằng cách ấn chuột vào thư mục Columns, bạn sẽ thấy định dạng dữ liệu được lưu trữ ở bên góc tay trái.

Raằng buộc so sánh năm trong sql năm 2024
Hoặc bạn có thể sử dụng cú pháp sau để kiểm tra kiểu dữ liệu: SELECT Col_name, … FROM INFORMATION_SCHEMA.COLUMNS Để để kiểm tra kiểu dữ liệu trong bảng SalesOrderHeader thuộc bộ dữ liệu AdventureworksFULL. Ta sử dụng câu truy vấn sau:
Raằng buộc so sánh năm trong sql năm 2024
Giải thích câu lệnh truy vấn:

  • FROM INFORMATION_SCHEMA.COLUMNS: Bảng mà cần truy vấn
  • WHERE (TABLE_SCHEMA = ‘Sales’) AND (TABLE_NAME = ‘SalesOrderHeader’): Là điều kiện để lọc dữ liệu. Điều kiện ở đây là truy vấn thông tin có trong bảng SalesOrderHeader thuộc lược đồ Sales.
  • ORDER BY DATA_TYPE: Kết quả sẽ được sắp xếp theo DATA_TYPE thứ tự từ A-Z.

Ta có thể thấy:

  • SalesOderID được lưu trữ dưới dạng int.
  • OderDate, DueDate, ShipDate được lưu trữ dưới dạng datetime.

Các hàm làm việc tương ứng kiểu dữ liệu

Các hàm chuyển đổi kiểu dữ liệu

Một số loại kiểu hàm chuyển đổi dữ liệu chính trong SQL.

Raằng buộc so sánh năm trong sql năm 2024
Trong quá trình truy vấn dữ liệu, bạn sẽ thường xuyên phải update kiểu dữ liệu (Data types). Dưới đây là một số hàm giúp chuyển đổi kiểu dữ liệu:

Hàm chuyển đổi kiểu dữ liệu

  • Hàm CAST

Hàm cho phép chuyển đổi từ một kiểu dữ liệu sang một kiểu dữ liệu khác. Cú pháp của hàm CAST:

CAST(Col/Expression AS Data type)

  • Col/Expression: Cột/biểu thức cần chuyển đổi kiểu dữ liệu.
  • Data type: Kiểu dữ liệu mà bạn muốn chuyển Col/Expression thành.

Raằng buộc so sánh năm trong sql năm 2024
Giải thích câu lệnh truy vấn: CAST(20 AS REAL) ép kiểu của giá trị 20 thành REAL. CAST(‘2023/08/23 20:14:30’ AS DATE) chuyển từ định dạng ngày/tháng/năm thời gian thành định dạng ngày.

  • Hàm CONVERT

Tương tự như hàm CAST, hàm CONVERT dùng để chuyển đổi từ một kiểu dữ liệu sang một kiểu dữ liệu khác. Tuy nhiên, hàm CONVERT hỗ trợ nhiều kiểu dữ liệu khác nhau (Binary; XML;…), chuyển định dạng ngày tháng. Cú pháp của hàm CONVERT:

CONVERT(target_data_type, expression, style)

  • Target_data_type: Kiểu dữ liệu mà bạn muốn chuyển đổi giá trị/biểu thức cần chuyển đổi.
  • Expression: Giá trị hoặc biểu thức cần chuyển đổi.
  • Style (Không bắt buộc): Thường áp dụng cho các chuyển đổi liên quan đến ngày tháng. Nó xác định cách định dạng ngày tháng được hiển thị hoặc chấp nhận.
    Raằng buộc so sánh năm trong sql năm 2024

Giải thích câu lệnh truy vấn: CONVERT(VARCHAR, GETDATE(), 101):

  • Kiểu dữ liệu muốn chuyển đổi thành kiểu VARCHAR.
    • Giá trị cần chuyển đổi là thời gian của ngày hiện tại, ta sử dụng hàm GETDATE() để lấy ngày hiện tại (23/09/2023)
    • Chuyển đổi dưới định dạng tháng/ngày/năm.
  1. Hàm TRY_CAST Cũng tương tự như CAST, TRY_CAST dùng để chuyển đổi từ một kiểu dữ liệu sang một kiểu dữ liệu khác. Tuy nhiên với những giá trị không chuyển đổi được kiểu dữ liệu, hàm TRY_CAST sẽ trả về dữ liệu không tồn tại (NULL). Ví dụ: Từ bảng SalesLT.Product thuộc bộ dữ liệu adventureworks, truy vấn các cột sau: Name, ProductNumber và chuyển kiểu dữ liệu của cột ProductNumver thành dạng INT và lưu dưới tên ProductNumber_CAST
    Raằng buộc so sánh năm trong sql năm 2024
    Giải thích câu lệnh truy vấn:
  • CAST(ProductNumber AS INT): Chuyển đổi kiểu dữ liệu của ProductNumber thành định dạng INT.

Tuy nhiên, việc chuyển kiểu dữ liệu của cột ProductNumber thành định dạng INT bị lỗi. Vì vậy, hàm CAST() trả về lỗi truy vấn. Trong khi đó, vẫn với ví dụ trên, ta sử dụng hàm TRY_CAST:

Raằng buộc so sánh năm trong sql năm 2024
Giải thích câu lệnh truy vấn:

  • TRY_CAST(ProductNumber AS INT): Chuyển đổi kiểu dữ liệu của ProductNumber thành định dạng INT.

Tuy nhiên, việc chuyển kiểu dữ liệu của cột ProductNumber (Dạng Varchar) thành định dạng INT là không thể. Vì vậy, hàm TRY_CAST() trả về NULL, thay vì báo lỗi như hàm CAST thông thường. d. Hàm TRY_CONVERT Tương tự như hàm CONVERT, TRY_CONVERT cho phép chuyển đổi từ một kiểu dữ liệu sang một kiểu dữ liệu khác. Tuy nhiên, khi chuyển đổi không thành công, hàm TRY_CONVERT trả về NULL thay vì lỗi như hàm CAST. Cú pháp hàm TRY_CONVERT:

TRY_CONVERT(expression AS data_type)

  • Expression: Giá trị hoặc biểu thức mà bạn muốn chuyển đổi sang kiểu dữ liệu mới.
  • Data_type: Kiểu dữ liệu mà bạn muốn chuyển đổi.

Raằng buộc so sánh năm trong sql năm 2024
Giải thích câu lệnh truy vấn:

  • CONVERT(): Dùng để chuyển kiểu định dạng của 20.7 thành INT.
  • TRY_CONVERT: Dùng để chuyển kiểu định dạng của ‘abc’ thành INT.

Có thể thấy, hàm TRY_CONVERT trả về NULL khi chuyển đổi giá trị không thành công. Sau đây là một số tham số về định dạng chỉ ngày, thời gian, ngày&giờ phổ biến:

  • Định dạng chỉ ngày.

![A table with text on it Description automatically generated](https://https://i0.wp.com/datapot.vn/wp-content/uploads/2023/12/a-table-with-text-on-it-description-automatically.png)

  • Định dạng chỉ thời gian:

Raằng buộc so sánh năm trong sql năm 2024

  • Định dạng chỉ ngày & giờ.

![A table with text and numbers Description automatically generated](https://https://i0.wp.com/datapot.vn/wp-content/uploads/2023/12/a-table-with-text-and-numbers-description-automat.png)

Xử lý dữ liệu dạng chuỗi

  1. Hàm CONCAT Hàm CONCAT được sử dụng để kết hợp nhiều chuỗi lại với nhau và tạo ra một chuỗi duy nhất. Cùng là kết hợp, tuy nhiên khi kết hợp nhiều chuỗi bao gồm cả NULL Hàm CONCAT sẽ vấn kết hợp chuỗi và bỏ qua NULL. Một cách làm khác để kết hợp chuỗi là sử dụng dấu “+”. Cú pháp của hàm CONCAT:

CONCAT(string1, string2, …)

  • string1, string2: Các tham số là chuỗi hoặc biểu thức chuỗi muốn nối lại với nhau.

Ví dụ: Từ bảng dữ liệu SalesLT.Customer thuộc bộ dữ liệu adventureworks, truy vấn các cột FirstName, LastName và kết hợp 2 cột trên lưu dưới tên FullName bằng hàm CONCAT và toán tử “+”.

Raằng buộc so sánh năm trong sql năm 2024
Hàm CONCAT và toán tử “+” được sử dụng để kết hợp 2 cột FirstName, LastName với nhau. b. Hàm CONCAT_WS Tương tự như hàm CONCAT, hàm CONCAT_WS sẽ kết hợp nhiều chuỗi bằng cách sử dụng một phân tách thành một chuỗi duy nhất. Ngoài ra, khi kết hợp các cột có NULL, hàm CONCAT_WS sẽ vấn kết hợp chuỗi và bỏ qua NULL. Cú pháp của hàm CONCAT_WS:

CONCAT_WS(separator, col_1, col_2, …)

  • separator: Chuỗi phân tách mà bạn muốn sử dụng để ngăn cách các chuỗi với nhau.
  • col_1, col_2: Các tham số là chuỗi hoặc biểu thức chuỗi mà bạn muốn nối với nhau sau khi được phân tách.

Ví dụ: Từ bảng dữ liệu SalesLT.Customer, truy vấn các cột Title, FirstName, LastName và kết hợp 3 cột trên lưu dưới tên FullName bằng hàm CONCAT_WS.

Raằng buộc so sánh năm trong sql năm 2024
Thay vì phải điền các chuỗi phân tách như hàm CONCAT, bạn chỉ cần điều chuỗi phân tách 1 lần trong hàm CONCAT_WS. c. Hàm LEN Hàm LEN được sử dụng dùng để tính độ dài của chuỗi ký tự. Cú pháp của hàm LEN:

LEN(string)

  • string: chuỗi ký tự mà bạn muốn tính độ dài.

Ví dụ: Từ bảng dữ liệu SalesLT.Customer thuộc bộ dữ liệu adventureworks, truy vấn các cột FirstName và tính độ dài của tên khách hàng.

Raằng buộc so sánh năm trong sql năm 2024
Hàm LEN tính toán độ dài của tên khách hàng. d. Hàm LEFT & RIGHT Hàm LEFT dùng để trích xuất một số ký tự cụ thể từ bên trái của ký tự. Hàm RIGHT dùng để trích xuất một số ký tự cụ thể từ bên phải của ký tự. Cú pháp của hàm LEFT và hàm RIGHT:

LEFT/RIGHT(string, num_characters)

  • string: Chuỗi ký tự mà bạn muốn trích xuất từ bên trái/phải.
  • length: Số lượng ký tự mà bạn muốn trích xuất từ phía trái/phải của chuỗi.

Ví dụ: Truy vấn 2 ký tự từ bên trái và 2 ký tự bên phải của từ ‘Hello’.

Raằng buộc so sánh năm trong sql năm 2024
Giải thích câu lệnh truy vấn.

  • SELECT: Hiển thị kết quả truy vấn.

LEFT(): trả về 2 ký tự từ bên trái qua phải của từ ‘Hello’. RIGHT(): trả về 2 ký tự từ bên phải qua trái của từ ‘Hello’. e. Hàm REPLICATE Hàm REPLICATE được sử dụng để lặp lại một chuỗi với số lần nhất định. Cú pháp hàm REPLICATE:

REPLICATE(string, n_times)

  • string: Chuỗi hoặc ký tự muốn lặp lại.
  • n_times: Số lần lặp lại chuỗi hoặc ký tự.

Ví dụ: Từ bảng SalesLT. Customer thuộc bộ dữ liệu adventureworks, truy vấn LastName và LastName2 lặp lại thông tin LastName 2 lần.

Raằng buộc so sánh năm trong sql năm 2024
Hàm REPLICATE lặp lại giá trị của cột LastName 2 lần. f. Hàm REPLACE Hàm REPLACE thay thế một chuỗi ký tự trong chuỗi ký tự gốc. Cú pháp hàm REPLACE:

REPLACE(string, to_replace, replacement)

  • string: Chuỗi ký tự gốc.
  • to_replace: Chuỗi ký tự được thay thế trong ký tự gốc.
  • replacement: Chuỗi ký tự thay thế.

Ví dụ: Từ bảng SalesLT.Product thuộc bộ dữ liệu adventureworks, truy vấn các cột Name, ProductNumber, và thay thế ký tự ‘BK’ trong cột ProductNumber thành ký tự ‘XX’.

Raằng buộc so sánh năm trong sql năm 2024
g. Hàm UPPER Hàm UPPER cho phép chuyển đổi chữ cái sang dạng viết hoa Cú pháp của hàm UPPER:

UPPER(nvarchar)

  1. Hàm LOWER Hàm LOWER cho phép chuyển đổi chữ cái sang dạng viết thường Cú pháp của hàm LOWER:

LOWER(nvarchar)

Ví dụ: Bạn muốn viết hoa FirstName, viết thường Middle Name.

Raằng buộc so sánh năm trong sql năm 2024
Giải thích câu lệnh truy vấn: Hàm UPPER chuyển đổi FirstName thành chữ cái viết hoa. Hàm LOWER chuyển đổi MiddleName thành chữ cái viết thường. i. Hàm CHARINDEX: CHARINDEX được dùng để tìm kiếm chuỗi ký tự trong chuỗi ký tự gốc và trả về vị trí đầu tiên của chuỗi khớp nếu có. Ngược lại, nếu không tìm thấy chuỗi ký tự con trong chuỗi ký tự gốc, hàm CHARINDEX sẽ trả về NULL. Cú pháp của CHARINDEX:

CHARINDEX(substr, str, [start_location])

  • substr: Chuỗi ký tự tìm kiếm trong chuỗi gốc.
  • str: Chuỗi gốc.
  • start_location: Vị trí bắt đầu tìm kiếm (Nếu có).

Ví dụ: Đếm ra có bao nhiêu ký tự đứng trước ‘@’ của cột EmailAddress.

Raằng buộc so sánh năm trong sql năm 2024
Giải thích câu lệnh truy vấn: Hàm CHARINDEX đếm vị trí của ‘@’ trong chuỗi ký tự EmailAddress. k. Hàm SUBSTRING Hàm SUBSTRING dùng để trích xuất một phần của chuỗi ký tự từ một vị trí bắt đầu và độ dài cụ thể. Cú pháp của SUBSTRING:

SUBSTRING(input_string, start_position, length)

  • input_string: Chuỗi ký tự cần trích xuất.
  • start_position: Vị trí bắt đầu trích xuất.
  • length: Độ dài phần cần trích xuất.

Ví dụ: Truy vấn tên người bán hàng từ cột SalesPerson bằng SUBSTRING.

Raằng buộc so sánh năm trong sql năm 2024

Xử lý và thao tác với dữ liệu dạng ngày (Date manipulations)

Xử lý và thao tác với dữ liệu dạng ngày là một trong những việc phổ biến khi truy vấn dữ liệu. Hàm DATEDIFF Hàm DATEDIFF được sử dụng để tính khoảng thời gian giữa hai thời điểm thời gian. Hàm này trả về một giá trị số nguyên, đại diện cho sự khác biệt giữa các ngày hoặc thời điểm dựa trên một đơn vị thời gian cụ thể (Ví dụ: ngày, tháng, năm). Cú pháp của DATEDIFF

DATEDIFF(date_part, start_date, end_date)

  • Date_part: Đơn vị thời gian mà bạn muốn tìm khoảng các, có thể là năm , tháng, ngày,…
  • Start_date: Ngày hoặc thời điểm bắt đầu khoảng thời gian.
  • End_date: Ngày hoặc thời điểm kết thúc khoảng thời gian.

Ví dụ: Từ bảng SalesOderHear thuộc bộ dữ liệu adventureworks, truy vấn SalesOrderID, OrderDate, ShipDate, Khoảng cách thời gian Order và Shipping theo Ngày/Tuần/Tháng.

Raằng buộc so sánh năm trong sql năm 2024
Giải thích câu lệnh truy vấn:

  • FROM: Dữ liệu được truy vấn từ bảng SalesLT.SalesOrderHeader.
  • SELECT: Truy vấn các cột SalesOrderID, OrderDate, ShipDate, Khoảng cách thời gian Order và Shipping theo ngày/tuần/tháng.

DATEDIFF() tính khoảng thời gian giữa thời điểm OrderDate và ShipDate theo mốc ngày/tuần/tháng.

Xử lý các dữ liệu không tồn tại hoặc dữ liệu không có sẵn (NULL)

Sau đây ta cùng tìm hiểu một số các hàm xử lý NULL. a. Hàm ISNULL Hàm ISNULL trả về một giá trị được chỉ định nếu biểu thức là NULL. Nếu biểu thức không phải là NULL, hàm này trả về chính biểu thức đó. Cú pháp hàm ISNULL:

ISNULL(expression, value)

  • expression: Biểu thức cần kiểm tra là NULL hay không
  • value: Giá trị sẽ được trả về nếu biểu thức là NULL.

Ví dụ: Từ bảng SalesLT.Product thuộc bộ dữ liệu adventureworks, sử dụng ISNULL để so sánh kết quả trong cột Color. Nếu cột Color có NULL, trả về tên NoColor.

Raằng buộc so sánh năm trong sql năm 2024
b. Hàm COALESCE Hàm COALESCE là được sử dụng để trả về giá trị đầu tiên không phải NULL từ một danh sách các biểu thức. Cú pháp hàm COALESCE:

COALESCE(expression1, expression2, …)

  • expression1, expression2: Danh sách các biểu thức bạn muốn kiểm tra và trả về giá trị đầu tiên không phải là NULL.

Ví dụ: Từ bảng Customer, truy vấn cột Class, ProductLine và ProductClass được tạo nên bởi cột Class và ProductLine. Với tên không xác định hoặc không có sẵn (NULL), hiển thị với giá trị ‘Unknown’. Giải thích câu lệnh truy vấn: Hàng 198 có biểu thức thứ 1 không NULL nên COALESCE trả về giá trị biểu thức đầu tiên L. Hàng 200 có biểu thức thứ 1, 2 NULL nên COALESCE trả về ‘Unknown’. Hàng 210 có biểu thức thứ 1 không NULL nên COALESCE trả về giá trị biểu thức thứ 1 H. Hàng 212 có biểu thức thứ 2 không NULL nên COALESCE trả về giá trị biểu thức thứ 2 S. c. Hàm NULLIF Hàm NULLIF được sử dụng để so sánh hai giá trị và trả về NULL nếu chúng bằng nhau. Cú pháp hàm NULLIF: NULLIF(expression1, expression2)

  • expression1: Giá trị bạn muốn so sánh.
  • expression2: Giá trị mà bạn muốn so sánh với expression1.

Ví dụ: so sánh giữa giá trị 5 và 5, 10 và 5 bằng hàm NULLIFF

Raằng buộc so sánh năm trong sql năm 2024
Giải thích câu lệnh truy vấn: Hàm NULLIF trả về NULL khi 2 giá trị so sánh bằng nhau. Hàm NULLIF trả về giá trị đầu tiên khi 2 giá trị so sánh khác nhau.

Nhóm hàm định dạng dữ liệu (Formatting data)

Định dạng ngày (Date formats)

Hầu hết cơ sở dữ liệu sẽ có hàm (Function) để giúp định dạng ngày. Cần thống nhất định dạng ngày (Date formats) để đảm bảo tính nhất quán trong cơ sở dữ liệu. Ví dụ: Định dạng ngày của Việt Nam và Mỹ:

  • Việt Nam: DD/MM/YYYY
  • Mỹ: MM/DD/YYYY

Vì vậy, cần hiểu cơ sở dữ liệu của mình đang lưu trữ dưới định dạng ngày (Date formats) nào để đảm bảo tính nhất quán trong việc lưu trữ. Hàm FORMAT: Hàm FORMAT được dùng để định dạng lại giá trị ngày tháng hoặc số dưới dạng chuỗi theo các định dạng tùy chỉnh. Cú pháp của FORMAT:

FORMAT(col_name, format, [ culture])

  • col_name: giá trị cần định dạng.
  • format: Dạng fomat mà bạn muốn áp dụng, có thể là định dạng thời gian hoặc định dạng số.
  • culture (tùy chọn): Mã vùng để xác định cách định dạng, mặc định là ‘NULL’.

Ví dụ: Format 24/09/2023 theo định dạng ngày, tháng, năm. Format giá trị 20.3 dưới dạng phần trăm và format 24/09/2023 theo định dạng ngày

Raằng buộc so sánh năm trong sql năm 2024
Giải thích câu lệnh truy vấn: FORMAT(2023-09-24, ‘dd/MM/yyyy’) giá trị ngày tháng năm được định dạng lại dưới format ngày/tháng/năm. FORMAT(20.3, ‘P’) giá trị 20.3 được định dạng dưới format phần trăm. FORMAT(2023-09-24, ‘dd/MM/yyyy’, ‘fr-FR’) giá trị ngày tháng năm được định dạng lại dưới format ngày/tháng/năm, không bao gồm giờ, phút, giây sử dụng mã vùng là ‘fr-FR’ (tiếng Pháp – Pháp).

Làm tròn số (Rounding)

Một số hàm làm tròn số trong trong SQL:

  • ROUND(): Làm tròn tới chứ số thập phân (Float).
  • CEILING(): Làm tròn lên.
  • FLOOR(): Làm tròn xuống.

Ví dụ: Từ bảng Product thuộc bộ dữ liệu adventureworks, truy vấn Name, StandardCost và sử dụng các hàm làm tròn với StandardCost (ROUND, CEILING, FLOOR).

Raằng buộc so sánh năm trong sql năm 2024
Giải thích câu lệnh truy vấn:

  • Hàm ROUND: Làm tròn StandardCost tới chữ số thập phân thứ 3.
  • Hàm CEILING: Làm tròn StandardCost lên.
  • Hàm FLOOR: Làm tròn StandardCost xuống.

Trên đây chỉ là một số hàm, định dạng kiểu dữ liệu phổ biến, các bạn có thể tham khảo thêm các hàm, định dạng kiểu dữ liệu khác tại tài liệu của Microsoft.