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

Cách sử dụng hàm chuỗi con trong PostgreSQL và Redshift

Đôi khi một chuỗi trong cơ sở dữ liệu của bạn có thể chứa một số thông tin được nhúng trong chuỗi đó dưới dạng chuỗi con. Chuỗi này có thể là một số ID có thể tồn tại trong một hoạt động hoặc số theo dõi cho trang web của công ty bạn.

Dưới đây là một ví dụ trong đó một công ty giám sát hoạt động lưu lượng truy cập trang web có quy ước đặt tên cụ thể cho ID theo dõi hoạt động. Quy ước đặt tên là "ID hoạt động" có 6 ký tự và ở vị trí đầu tiên, "ID khách hàng" là 7 ký tự và xuất hiện ở vị trí thứ hai và ở vị trí thứ ba là "ID trang" dài 3 ký tự. Ba số ID này được đặt cùng nhau trong một chuỗi duy nhất không có ký tự phân chia. Trong ví dụ này, số theo dõi có thể trông giống như sau:WSL194OH08856CAS.

Bạn có thể muốn lấy ra số ID khách hàng và để làm điều đó, bạn có thể sử dụng hàm chuỗi con sau:

SUBSTRING("WSL194OH08856CAS",7,7)

Biết rằng số ID khách hàng dài 7 chữ số và bắt đầu bằng vị trí thứ 7, công thức nêu trên hoạt động theo kiểu sau:

Ngoài ra, bạn có thể chỉ muốn có ID hoạt động. Để có được điều này, bạn sẽ sử dụng cùng một chức năng theo một cách hơi khác.

SUBSTRING("WSL194OH08856CAS",1,6)

Cũng giống như đoạn mã trước, chúng ta đã xem đoạn mã này sẽ bắt đầu với vị trí đầu tiên và trả về một chuỗi có 6 ký tự.

Trong ví dụ cuối cùng của chúng tôi, bạn có thể quan tâm đến ID trang, trong trường hợp của chúng tôi, ID này nằm ở cuối chuỗi. Đối với điều này, bạn có thể sử dụng chức năng như sau:

SUBSTRING("WSL194OH08856CAS",14)

Trong ví dụ này, bằng cách bỏ qua đối số cuối cùng, bạn đang ra lệnh cho cơ sở dữ liệu trả về cho bạn mọi thứ sau đó và bao gồm cả ký tự ở vị trí thứ 14.

Sử dụng hàm này, giờ đây bạn có thể phân tích cú pháp một chuỗi trong một cột dựa trên các vị trí đã biết và độ dài của chuỗi con mà nó có thể chứa. Đây là một kỹ thuật hữu ích để tách một cột thành nhiều chuỗi con nếu những chuỗi con đó có thể được sử dụng theo cách khác với toàn bộ chuỗi ban đầu.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. NHẬN CHẨN ĐOÁN với câu lệnh SAO CHÉP trong hàm Pl / pgsql

  2. Thêm giá trị mới vào Loại ENUM hiện có

  3. Tham gia bên trong &tham gia bên ngoài; thứ tự của các bảng trong từ có quan trọng không?

  4. Gọi một hàm trả về tập hợp với một đối số mảng nhiều lần

  5. Số sê-ri trên mỗi nhóm hàng cho khóa ghép