sql >> Database teknologi >  >> RDS >> Sqlserver

INSTR() Svarende til SQL Server

Mange RDBMS'er har en INSTR() funktion, der gør os i stand til at finde en understreng i en streng. Nogle (såsom MySQL og MariaDB) har også en LOCATE() funktion og en POSITION() funktion (også understøttet af PostgreSQL), der gør en lignende ting.

SQL Server har ikke en INSTR() fungere. Den har heller ikke en LOCATE() eller POSITION() fungere. Men den har CHARINDEX() funktion, der gør det samme.

SQL Server har også PATINDEX() funktion, som udfører et lignende job som CHARINDEX() .

CHARINDEX() Funktion

Her er et eksempel på CHARINDEX() funktion:

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

Resultat:

4

Funktionen accepterer et tredje argument, der tillader os at angive, hvor vi skal starte søgningen:

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

Resultat:

17

I dette eksempel startede vi søgningen på position 5, som var efter starten af ​​den første forekomst af news , så det returnerede positionen for den anden forekomst.

PATINDEX() Funktion

PATINDEX() funktion ligner CHARINDEX() , bortset fra at det giver os mulighed for at søge efter et mønster i stedet for en bestemt streng.

Her er et eksempel for at illustrere, hvad jeg mener:

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

Resultat:

5

Her er hvad der sker, hvis jeg fjerner jokertegnene:

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

Resultat:

0

Se PATINDEX() vs CHARINDEX() for mere om forskellene mellem disse to funktioner.


  1. PHP:Advarsel:sort() forventer, at parameter 1 er array, ressource givet

  2. Multi-DC PostgreSQL:Opsætning af en standby-knude på en anden geografisk placering via en VPN

  3. Implementering af SQL Server Performance Indicator for forespørgsler, lagrede procedurer og triggere

  4. Sådan ændres skemaet for et objekt (tabel, visning, lagret procedure) i SQL Server-database - SQL Server / TSQL vejledning del 28