PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak używać funkcji podciągów w PostgreSQL i Redshift

Czasami ciąg w Twojej bazie danych może zawierać pewne informacje osadzone w tym ciągu jako podciąg. Ten ciąg może być numerem identyfikacyjnym, który może istnieć w aktywności lub numerze śledzenia w witrynie Twojej firmy.

Oto przykład, w którym firma monitorująca ruch w witrynie ma określoną konwencję nazewnictwa dla identyfikatora śledzenia aktywności. Konwencja nazewnictwa to „Activity ID”, który ma 6 znaków i na pierwszej pozycji „Customer ID”, który ma 7 znaków i pojawia się jako drugi, a na trzeciej pozycji „Page ID”, który ma 3 znaki. Te trzy numery identyfikacyjne są połączone w jeden ciąg bez znaków rozdzielających. W tym przykładzie numer śledzenia może wyglądać tak:WSL194OH08856CAS.

Możesz wyciągnąć numer ID klienta, a w tym celu możesz użyć następującej funkcji podciągu:

SUBSTRING("WSL194OH08856CAS",7,7)

Wiedząc, że numer identyfikacyjny klienta ma 7 cyfr i zaczyna się od 7. pozycji, wzór przedstawiony powyżej działa w następujący sposób:

Ponadto możesz chcieć po prostu mieć identyfikator aktywności. Aby to uzyskać, użyjesz tej samej funkcji tylko w nieco inny sposób.

SUBSTRING("WSL194OH08856CAS",1,6)

Podobnie jak w poprzednim fragmencie kodu, przyjrzeliśmy się, że ten zaczyna się od pierwszej pozycji i zwraca ciąg o długości 6 znaków.

W naszym ostatnim przykładzie możesz być zainteresowany identyfikatorem strony, który w naszym przypadku znajduje się na końcu ciągu. W tym celu możesz użyć funkcji w następujący sposób:

SUBSTRING("WSL194OH08856CAS",14)

W tym przykładzie, pomijając ostatni argument, nakazujesz bazie danych, aby zwróciła ci wszystko po i włączając znak na 14. pozycji.

Korzystając z tej funkcji, możesz teraz przeanalizować ciąg w kolumnie na podstawie znanych pozycji i długości podciągów, które może zawierać. Jest to przydatna technika dzielenia kolumny na wiele podciągów, jeśli te podciągi mogą być użyte w inny sposób niż cały oryginalny ciąg.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy mogę poprosić Postgresql o ignorowanie błędów w transakcji?

  2. Wypełnianie pola Many2many (odoo 8)

  3. Zmiana portu serwera kontenerów postgres w Docker Compose

  4. Uwagi dotyczące indeksów PostgreSQL B-Tree

  5. Jak obsłużyć opcjonalną wartość zwracaną przez zapytanie za pomocą skrzynki postgres?