Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

INSTR() Setara di SQL Server

Banyak RDBMS memiliki INSTR() fungsi yang memungkinkan kita menemukan substring di dalam string. Beberapa (seperti MySQL dan MariaDB) juga memiliki LOCATE() fungsi dan POSITION() fungsi (juga didukung oleh PostgreSQL), yang melakukan hal serupa.

SQL Server tidak memiliki INSTR() fungsi. Juga tidak memiliki LOCATE() atau POSITION() fungsi. Tetapi ia memiliki CHARINDEX() fungsi yang melakukan hal yang sama.

SQL Server juga memiliki PATINDEX() fungsi, yang melakukan pekerjaan yang mirip dengan CHARINDEX() .

CHARINDEX() Fungsi

Berikut ini contoh CHARINDEX() fungsi:

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

Hasil:

4

Fungsi menerima argumen ketiga yang memungkinkan kita untuk menentukan di mana memulai pencarian:

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

Hasil:

17

Dalam contoh ini, kami memulai pencarian di posisi 5, setelah dimulainya kemunculan pertama news , sehingga mengembalikan posisi kemunculan kedua.

PATINDEX() Fungsi

PATINDEX() fungsinya mirip dengan CHARINDEX() , kecuali bahwa ini memungkinkan kita untuk mencari pola, bukan string tertentu.

Berikut ini contoh untuk menggambarkan apa yang saya maksud:

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

Hasil:

5

Inilah yang terjadi jika saya menghapus karakter wildcard:

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

Hasil:

0

Lihat PATINDEX() vs CHARINDEX() untuk mengetahui lebih lanjut tentang perbedaan antara kedua fungsi ini.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bisakah tabel server sql memiliki dua kolom identitas?

  2. Terjadi kesalahan terkait jaringan atau spesifik contoh saat membuat sambungan ke SQL Server

  3. SQL Server memeriksa sensitivitas huruf besar-kecil?

  4. Cara Mengurangi Ukuran File Data di SQL Server (T-SQL)

  5. Skrip Inventaris Koleksi SQL Server -1