Maison >base de données >tutoriel mysql >Comment simuler la fonctionnalité LastIndexOf dans SQL Server ?

Comment simuler la fonctionnalité LastIndexOf dans SQL Server ?

DDD
DDDoriginal
2025-01-12 12:56:42264parcourir

How to Simulate LastIndexOf Functionality in SQL Server?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn