CodeGym /Các khóa học /SQL SELF /Làm việc với chuỗi: LENGTH(), SUBSTRING(), TRIM(), POSITI...

Làm việc với chuỗi: LENGTH(), SUBSTRING(), TRIM(), POSITION(), REPLACE(), INITCAP()

SQL SELF
Mức độ, Bài học
Có sẵn

Khi bạn làm việc với tên, địa chỉ, email hoặc bất kỳ loại text nào — gần như lúc nào cũng cần làm một trong hai việc sau:

  • Lấy một phần của chuỗi
  • Kiểm tra độ dài
  • Xoá khoảng trắng thừa
  • Tìm/thay thế đoạn text
  • Định dạng lại kết quả

Ví dụ, bạn cần:

  • Chỉ hiển thị họ từ họ tên đầy đủ.
  • Tìm sinh viên có họ bắt đầu bằng “P”.
  • Thay tất cả khoảng trắng thành dấu gạch dưới.
  • Hiển thị họ với chữ cái đầu viết hoa.

Tất cả mấy việc này đều dễ làm với các hàm chuỗi của PostgreSQL.

LENGTH() — độ dài chuỗi

Hàm LENGTH() trả về số ký tự trong chuỗi.

Cú pháp:

LENGTH(string)

Ví dụ:

SELECT name, LENGTH(name) AS name_length
FROM students;
name name_length
Art 3
Song 4
Pal 3

Rất hữu ích để kiểm tra độ dài họ tên, mật khẩu và các text khác.

SUBSTRING() — lấy một phần chuỗi

Cho phép lấy ra một đoạn con từ chuỗi — ví dụ, 3 ký tự đầu của họ hoặc domain từ email.

Cú pháp:

SUBSTRING(string FROM start FOR length)
  • start — vị trí ký tự đầu tiên (đếm từ 1)
  • length — số ký tự muốn lấy

Ví dụ 1: 3 ký tự đầu của họ

SELECT last_name, SUBSTRING(last_name FROM 1 FOR 3) AS prefix
FROM students;
last_name prefix
Song Son
Pal Pal

Ví dụ 2: domain của email

SELECT email, SUBSTRING(email FROM POSITION('@' IN email) + 1) AS domain
FROM students;
email domain
otto@example.com example.com
maria@gmail.com gmail.com

TRIM() — xoá khoảng trắng thừa

Xoá khoảng trắng (và các ký tự khác) ở đầu và/hoặc cuối chuỗi.

Cú pháp:

TRIM([LEADING | TRAILING | BOTH] chars FROM string)

Nhưng thường thì chỉ dùng đơn giản như này:

TRIM(string)

Ví dụ:

SELECT '[' || TRIM('   Art   ') || ']' AS cleaned;
cleaned
[Art]

Rất quan trọng nếu người dùng nhập dữ liệu thủ công (ví dụ, có khoảng trắng ở đầu).

POSITION() — tìm vị trí chuỗi con

Trả về vị trí bắt đầu của chuỗi con.

Cú pháp:

POSITION(substring IN string)

Ví dụ:

SELECT email, POSITION('@' IN email) AS at_position
FROM students;
email at_position
otto@example.com 5
anna.pal@gmail.com 9

Có thể dùng cùng với SUBSTRING() để lấy một phần chuỗi.

REPLACE() — thay thế chuỗi con

Thay tất cả các lần xuất hiện của một chuỗi con bằng chuỗi khác.

Cú pháp:

REPLACE(string, from_substring, to_substring)

Ví dụ: thay khoảng trắng bằng dấu gạch dưới

SELECT name, REPLACE(name, ' ', '_') AS fixed_name
FROM students;
name fixed_name
Otto Art Otto_Art
Maria Chi Maria_Chi

INITCAP() — chữ cái đầu viết hoa

Chuyển chuỗi sao cho chữ cái đầu của mỗi từ viết hoa, còn lại là chữ thường.

Cú pháp:

INITCAP(string)

Ví dụ:

SELECT INITCAP('anna pal') AS full_name;
full_name
Anna Pal

Rất tiện để chuẩn hoá họ tên.

2
Nhiệm vụ
SQL SELF, mức độ, bài học
Đã khóa
Xác định độ dài chuỗi
Xác định độ dài chuỗi
2
Nhiệm vụ
SQL SELF, mức độ, bài học
Đã khóa
Trích xuất một phần của chuỗi
Trích xuất một phần của chuỗi
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION