PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Cách tách một chuỗi trong PostgreSQL

Vấn đề:

Bạn muốn tách một chuỗi trong PostgreSQL.

Ví dụ 1:

Bạn có một câu và bạn muốn chia nó bằng ký tự khoảng trắng.

Giải pháp 1:

SELECT unnest(
  string_to_array('It''s an example sentence.', ' ')
) AS parts;

Kết quả như sau:

câu
phần
Đó là
an
ví dụ
.

Thảo luận:

Để lấy tất cả các phần của câu dưới dạng các phần tử của một mảng trong PostgreSQL, hãy sử dụng hàm string_to_array (text, delimiter). Văn bản là văn bản bạn muốn tách và dấu phân cách là chuỗi (ở đây, khoảng trắng) mà bạn muốn tách văn bản. Cách sử dụng đơn giản string_to_array(text, delimiter) chức năng:

SELECT string_to_array('It''s an example sentence.', ' ') AS parts;

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

phần
{Đó là, một ví dụ, câu.}
SELECT unnest(
  string_to_array('It''s an example sentence.', ' ')
) AS parts;

Điều này sẽ tạo ra một cột có tất cả các phần chuỗi, mỗi phần nằm trong một hàng riêng biệt.

Ví dụ 2:

Trong sentences bảng, có một số câu.

câu
Đây là câu đầu tiên.
Và đây là cái còn lại.

Bạn muốn tách các câu bằng ký tự khoảng trắng.

Giải pháp 2:

SELECT unnest(string_to_array(sentence, ' ')) AS parts
FROM sentences;

Kết quả như sau:

câu
phần
Cái này
cái
đầu tiên
.
đây là
cái
khác
một.

Thảo luận:

Cũng giống như trong ví dụ trước, sử dụng các hàm string_to_array (văn bản, dấu phân tách) và unnest (mảng). Văn bản phải là tên cột (câu), nhưng dấu phân cách vẫn là khoảng trắng (''). Lần này, bạn sử dụng dữ liệu từ bảng, vì vậy bạn cần sử dụng từ khóa FROM cùng với tên bảng.

SELECT unnest(string_to_array(sentence, ' ')) AS parts
FROM sentences;

Ví dụ 3:

Trong sentences bảng, có hai cột:id và câu sentence .

câu
id
1 Đây là câu đầu tiên.
2 Và đây là cái còn lại.

Bạn muốn tách các câu bằng ký tự khoảng trắng.

Giải pháp 3:

SELECT
  id,
  unnest(string_to_array(sentence, ' ')) AS parts
FROM sentences;

Kết quả như sau:

câu
id bộ phận
1 Cái này
1
1 cái
1 đầu tiên
1 .
2
2 đây là
2 cái
2 khác
2 một.

Thảo luận:

Ví dụ này rất giống, nhưng bạn cũng muốn xem id cột. Để xem cột này, chỉ cần thêm nó vào SELECT liệt kê và nhớ bao gồm dấu phẩy. Bạn sẽ thấy ID của câu cùng với các phần của câu trong kết quả. Ví dụ:câu đầu tiên được chia thành 5 phần và nó có ID 1 . Do đó, ID cho cả 5 phần trong kết quả sẽ là 1 . Câu tiếp theo, với ID 2 , cũng được chia thành 5 phần và mỗi phần này sẽ được hiển thị bằng id = 2 .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cấp đặc quyền cho các bảng trong tương lai trong PostgreSQL?

  2. psql - lưu kết quả của lệnh vào một tệp

  3. Làm thế nào để ghi DataFrame vào bảng postgres?

  4. Việc giảm cơ sở dữ liệu có phải được thực hiện không trong bất kỳ giao dịch nào không?

  5. Postgres lỗi cú pháp bảng thả