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

INSTR () Tương đương trong SQL Server

Nhiều RDBMS có INSTR() hàm cho phép chúng tôi tìm một chuỗi con trong một chuỗi. Một số (chẳng hạn như MySQL và MariaDB) cũng có LOCATE() và một POSITION() (cũng được hỗ trợ bởi PostgreSQL), làm điều tương tự.

Máy chủ SQL không có INSTR() hàm số. Nó cũng không có LOCATE() hoặc POSITION() hàm số. Nhưng nó có CHARINDEX() hoạt động tương tự.

SQL Server cũng có PATINDEX() , thực hiện một công việc tương tự với CHARINDEX() .

CHARINDEX() Chức năng

Đây là một ví dụ về CHARINDEX() chức năng:

SELECT CHARINDEX('news', 'No news is good news');

Kết quả:

4

Hàm chấp nhận đối số thứ ba cho phép chúng tôi chỉ định nơi bắt đầu tìm kiếm:

SELECT CHARINDEX('news', 'No news is good news', 5);

Kết quả:

17

Trong ví dụ này, chúng tôi bắt đầu tìm kiếm ở vị trí 5, sau khi bắt đầu lần xuất hiện đầu tiên của news , vì vậy nó trả về vị trí của lần xuất hiện thứ hai.

PATINDEX() Chức năng

PATINDEX() chức năng tương tự như CHARINDEX() , ngoại trừ việc nó cho phép chúng tôi tìm kiếm một mẫu, thay vì một chuỗi cụ thể.

Dưới đây là một ví dụ để minh họa ý tôi muốn nói:

SELECT PATINDEX('%ew%', 'No news is good news');

Kết quả:

5

Đây là những gì sẽ xảy ra nếu tôi xóa các ký tự đại diện:

SELECT PATINDEX('ew', 'No news is good news');

Kết quả:

0

Xem PATINDEX() so với CHARINDEX() để biết thêm về sự khác biệt giữa hai chức năng này.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để thay đổi các giá trị cột nhận dạng theo lập trình?

  2. 2 cách trả về tất cả các hàm do người dùng xác định trong cơ sở dữ liệu máy chủ SQL

  3. SQL Server - Bao gồm NULL bằng UNPIVOT

  4. Stuff và 'For Xml Path' hoạt động như thế nào trong SQL Server?

  5. Java JDBC:ngày nghỉ hai ngày liên tục