PostgreSQL Hàm SUBSTRING() với ví dụ về Regex

Là gì PostgreSQL Chuỗi con?

Sản phẩm PostgreSQL Hàm chuỗi con giúp bạn trích xuất và trả về một phần của chuỗi. Thay vì trả về toàn bộ chuỗi, nó chỉ trả về một phần của chuỗi đó.

cú pháp

Sản phẩm PostgreSQL hàm chuỗi con có cú pháp như sau:

substring( string [from starting_position] [for length] )

Thông số

Họ tên Mô tả
chuỗi Chuỗi nguồn có kiểu dữ liệu là varchar, char, string, v.v.
điểm xuất phát Nó là một tham số tùy chọn. Nó biểu thị nơi bắt đầu trích xuất chuỗi. Nếu bạn bỏ qua tham số này, quá trình trích xuất sẽ bắt đầu từ vị trí 1, đây là ký tự đầu tiên trong chuỗi.
chiều dài Nó là một tham số tùy chọn. Nó biểu thị số lượng ký tự được trích xuất từ ​​chuỗi. Nếu bạn bỏ qua tham số này, hàm sẽ trích xuất từ ​​vị trí bắt đầu đến cuối chuỗi.

Các ví dụ

Trong ví dụ này, chúng tôi muốn trích xuất 4 ký tự đầu tiên từ từ Guru99:

SELECT substring('Guru99' for 4);

Lệnh sẽ trả về kết quả sau:

PostgreSQL Chuỗi con

Chúng tôi không chỉ định vị trí bắt đầu, do đó việc trích xuất chuỗi con bắt đầu ở vị trí 1. 4 ký tự được trích xuất để trả về giá trị trên.

Ví dụ sau đây cho thấy cách xác định vị trí bắt đầu:

SELECT substring('Guru99' from 1 for 4);

Lệnh sẽ trả về kết quả sau:

PostgreSQL Chuỗi con

Chúng tôi đã chỉ định rằng việc trích xuất chuỗi con phải bắt đầu từ vị trí 1 và phải trích xuất 4 ký tự.

Chúng ta hãy trích xuất 99 từ chuỗi Guru99:

SELECT substring('Guru99' from 5);

Lệnh sẽ trả về kết quả sau:

PostgreSQL Chuỗi con

Chúng tôi đã chỉ định vị trí bắt đầu là 5. Vì số lượng ký tự cần trích xuất không được chỉ định nên quá trình trích xuất sẽ chạy đến cuối chuỗi.

Đây là một ví dụ khác:

SELECT substring('Guru99' from 5 for 2);

Lệnh sẽ trả về kết quả sau:

PostgreSQL Chuỗi con

Chúng ta đã bắt đầu trích xuất ở vị trí thứ 5 và đã trích xuất được 2 ký tự.

Hãy xem xét bảng Sách được đưa ra dưới đây:

PostgreSQL Chuỗi con

Chúng tôi muốn có ý tưởng sơ bộ về tên của mỗi cuốn sách. Tuy nhiên, chúng ta chỉ có thể trích xuất 15 ký tự đầu tiên từ cột tên của bảng:

SELECT
   id,
   SUBSTRING(name, 1, 15 ) AS name_initial
FROM
   Book
ORDER BY
   id;

Lệnh sẽ trả về kết quả sau:

PostgreSQL Chuỗi con

Bây giờ chúng tôi đã có ý tưởng sơ bộ về tên của mỗi cuốn sách.

So khớp các chuỗi con với biểu thức chính quy SQL

In PostgreSQL, chúng ta có thể trích xuất một chuỗi con khớp với biểu thức chính quy POSIX đã chỉ định. Trong trường hợp này, hàm chuỗi con được sử dụng với cú pháp sau:

SUBSTRING(string FROM matching_pattern)

or

SUBSTRING(string, matching_pattern);

Dưới đây là giải thích về các thông số trên:

Chuỗi này là chuỗi nguồn có loại dữ liệu là varchar, char, chuỗi, v.v.

matching_pattern là mẫu được sử dụng để tìm kiếm trong chuỗi.

Các ví dụ

SELECT
   SUBSTRING (
      'Your age is 22',
      '([0-9]{1,2})'
   ) as age;

Lệnh sẽ trả về kết quả sau:

So khớp các chuỗi con với biểu thức chính quy SQL

Chuỗi đầu vào của chúng ta là tuổi của bạn là 22. Trong mẫu, chúng ta đang tìm kiếm một mẫu số trong chuỗi của mình, khi tìm thấy mẫu này, hàm chuỗi con chỉ nên trích xuất hai ký tự.

Cách so khớp chuỗi con bằng pgAdmin

Bây giờ hãy xem cách các hành động được thực hiện bằng pgAdmin.

Các truy vấn trên mà chúng ta không cần cơ sở dữ liệu có thể được thực hiện trực tiếp từ cửa sổ trình soạn thảo truy vấn. Chỉ cần làm như sau:

Bước 1) Đăng nhập tài khoản của bạn.
Đăng nhập vào tài khoản pgAdmin của bạn.

Bước 2) Trên pgAdmin,
Nhấp vào biểu tượng Công cụ truy vấn.

So khớp chuỗi con bằng pgAdmin

Cửa sổ soạn thảo truy vấn sẽ được mở.

Bước 3) Nhập truy vấn.
Nhập truy vấn sau vào cửa sổ soạn thảo.

SELECT substring('Guru99' for 4);

Bước 4) Thực hiện kiểm tra
Nhấp vào biểu tượng Thực thi để thực hiện truy vấn.

So khớp chuỗi con bằng pgAdmin

Bước 5) Việc thực hiện truy vấn được thực hiện.
Nó sẽ trả về kết quả sau:

So khớp chuỗi con bằng pgAdmin

Ví dụ 2:

SELECT substring('Guru99' from 1 for 4);

Nó sẽ trả về kết quả sau:

So khớp chuỗi con bằng pgAdmin

Đây là ví dụ tiếp theo:

SELECT substring('Guru99' from 5);

Nó sẽ trả về kết quả sau:

So khớp chuỗi con bằng pgAdmin

Ví dụ 3:

SELECT substring('Guru99' from 5 for 2);

Nó sẽ trả về kết quả sau:

So khớp chuỗi con bằng pgAdmin

Bây giờ, chúng ta hãy chạy ví dụ bằng bảng Book của cơ sở dữ liệu Demo:

Bước 1) Đăng nhập vào tài khoản pgAdmin của bạn.

Bước 2)

  1. Từ thanh điều hướng ở bên trái-Nhấp vào Cơ sở dữ liệu.
  2. Nhấp vào Bản trình diễn.

So khớp chuỗi con bằng pgAdmin

Bước 3) Nhập truy vấn vào trình soạn thảo truy vấn:

SELECT
   id,
   SUBSTRING(name, 1, 15 ) AS name_initial
FROM
   Book
ORDER BY
   id;

Bước 4) Nhấp vào nút Thực hiện.

So khớp chuỗi con bằng pgAdmin

Nó sẽ trả về kết quả sau:

PostgreSQL Chuỗi con

Bây giờ chúng ta đã có ý tưởng cơ bản về tên của mỗi cuốn sách.

So khớp các chuỗi con với biểu thức chính quy SQL

Để thực hiện thao tác tương tự trên pgAdmin, hãy làm như sau:

Bước 1) Đăng nhập vào tài khoản pgAdmin của bạn.

Bước 2) Nhấp vào biểu tượng Công cụ truy vấn.

So khớp các chuỗi con với biểu thức chính quy SQL

Cửa sổ soạn thảo truy vấn sẽ được mở.

Bước 3) Nhập truy vấn sau vào cửa sổ soạn thảo.

SELECT
   SUBSTRING (
      'Your age is 22',
      '([0-9]{1,2})'
   ) as age;

Bước 4) Nhấp vào biểu tượng Thực thi để thực hiện truy vấn.

So khớp các chuỗi con với biểu thức chính quy SQL

Nó sẽ trả về kết quả sau:

So khớp các chuỗi con với biểu thức chính quy SQL

Tổng kết

  • Sản phẩm PostgreSQL Hàm chuỗi con giúp trích xuất và chỉ trả về một phần của chuỗi.
  • Ký tự đầu tiên của chuỗi nằm ở vị trí 1.
  • Nếu số lượng ký tự được trích xuất từ ​​chuỗi không được chỉ định, hàm sẽ trích xuất các ký tự từ vị trí bắt đầu được chỉ định đến cuối chuỗi.
  • Nếu số ký tự cần trích xuất được chỉ định thì chỉ số ký tự đó sẽ được trích xuất.

Tải xuống Cơ sở dữ liệu được sử dụng trong Hướng dẫn này