Fonction LastIndexOf simulée dans SQL Server
SQL Server lui-même ne fournit pas directement d'équivalent à la fonction LastIndexOf couramment utilisée dans les langages de programmation. Cependant, il existe d’autres moyens de rechercher la dernière occurrence d’une sous-chaîne dans une chaîne.
Utiliser les fonctions CHARINDEX et REVERSE
Une façon consiste à utiliser les fonctions CHARINDEX et REVERSE ensemble. Cette approche peut être longue et lourde, comme le montre le code fourni dans la question :
<code class="language-sql">SELECT REVERSE(SUBSTRING(REVERSE(DB_NAME()), 1, CHARINDEX('_', REVERSE(DB_NAME()), 1) - 1))</code>
Utilisez les fonctions DROITE et ARRIÈRE
Pour une solution plus efficace et plus lisible, vous pouvez combiner les fonctions DROITE et REVERSE. Cette méthode permet de récupérer la sous-chaîne suite à la dernière occurrence d'un caractère spécifié, comme ceci :
<code class="language-sql">select right(db_name(), charindex('_', reverse(db_name()) + '_') - 1)</code>
Utilisez les fonctions GAUCHE et REVERSE
De même, pour récupérer la sous-chaîne avant la dernière occurrence, vous pouvez utiliser la fonction GAUCHE :
<code class="language-sql">select left(db_name(), len(db_name()) - charindex('_', reverse(db_name()) + '_'))</code>
En utilisant ces techniques, vous pouvez effectuer efficacement les dernières opérations d'index dans SQL Server, offrant ainsi une alternative plus intuitive et efficace à l'approche originale.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!