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

Cách Substr () hoạt động trong SQLite

SQLite substr() hàm cho phép bạn trả về một chuỗi con từ một chuỗi, dựa trên một vị trí bắt đầu nhất định trong chuỗi.

Nó yêu cầu hai đối số và chấp nhận đối số tùy chọn thứ ba.

Cập nhật :Như từ SQLite 3.34.0 (phát hành vào ngày 1 tháng 12 năm 2020), substr() bây giờ có thể được gọi là substring() để tương thích với SQL Server.

Cú pháp

Bạn có thể gọi substr() theo bất kỳ cách nào sau đây:

substr(X,Y,Z)
substr(X,Y)
substring(X,Y,Z)
substring(X,Y)
  • X là chuỗi đầy đủ chứa chuỗi con bạn muốn trả về.
  • Y là vị trí của ký tự đầu tiên của chuỗi con mà bạn muốn trả về từ chuỗi đó.
  • Z là số ký tự mà bạn muốn trả về. Nếu bỏ qua, tất cả các ký tự tiếp theo sẽ được trả về (bắt đầu từ Y ).

Nếu X là một chuỗi sau đó các chỉ số ký tự tham chiếu đến các ký tự UTF-8 thực tế. Nếu X là BLOB thì các chỉ số tham chiếu đến byte.

Lưu ý rằng substring() cú pháp chỉ có sẵn từ SQLite 3.34.0.

Ví dụ với 3 đối số

Dưới đây là một ví dụ cơ bản để minh họa cách sử dụng substr() với ba đối số.

SELECT substr('Industrial', 3, 4);

Kết quả:

dust

Ví dụ với 2 đối số

Nếu tôi bỏ qua đối số thứ ba từ ví dụ trước, tôi nhận được kết quả sau.

SELECT substr('Industrial', 3);

Kết quả:

dustrial

Điểm xuất phát phủ định

Bạn có thể cung cấp giá trị âm cho đối số thứ hai. Khi bạn làm điều này, ký tự đầu tiên của chuỗi con được tìm thấy bằng cách đếm từ bên phải thay vì bên trái.

SELECT substr('Industrial', -3);

Kết quả:

ial

Đây là một ví dụ khác, lần này tôi chỉ định độ dài của chuỗi con.

SELECT substr('Industrial', -8, 4);

Kết quả:

dust

Vì vậy, các giá trị âm có cùng tác động như khi sử dụng substring() trong MySQL. MySQL cũng có substr() hàm, là từ đồng nghĩa của substring() của nó hàm số.

Tuy nhiên, điều này khác với cách SQL Server xử lý các giá trị âm. Khi bạn chuyển một giá trị âm cho substring() trong SQL Server, nó sẽ chỉ bắt đầu đếm tại một điểm tưởng tượng trước khi chuỗi bắt đầu.

Độ dài chuỗi con phủ định

Ví dụ trước đã sử dụng một điểm bắt đầu phủ định. Trong ví dụ này, tôi sẽ sử dụng độ dài âm. Điều này có nghĩa là tôi sẽ cung cấp một giá trị âm cho đối số thứ ba.

SELECT substr('Industrial', -3, -4);

Kết quả:

ustr

Vì vậy, việc cung cấp giá trị âm cho đối số thứ ba dẫn đến các ký tự đứng trước điểm bắt đầu được trả về.

Điều này cũng áp dụng khi đối số thứ hai là một giá trị dương.

SELECT substr('Industrial', 7, -4);

Kết quả:

dust

Ví dụ về cơ sở dữ liệu

Dưới đây là một ví dụ sử dụng substr() trong một truy vấn cơ sở dữ liệu đối với cơ sở dữ liệu mẫu Chinook.

SELECT substr(Title, 1, 20)
FROM Album
LIMIT 10;

Kết quả:

substr(Title, 1, 20)
--------------------
For Those About To R
Balls to the Wall   
Restless and Wild   
Let There Be Rock   
Big Ones            
Jagged Little Pill  
Facelift            
Warner 25 Anos      
Plays Metallica By F
Audioslave          

  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ách Round () hoạt động trong SQLite

  2. Định dạng kết quả truy vấn SQLite dưới dạng cột với tiêu đề cột

  3. DROP TABLE NẾU TỒN TẠI trong SQLite

  4. SQLite KHÔNG ĐỦ

  5. đặt sqlite db đúng cách trong android