Récupération d'une chaîne entre des délimiteurs connus à l'aide de SQL
Dans les scénarios de base de données, il est souvent nécessaire d'extraire une sous-chaîne spécifique d'une chaîne plus grande en fonction de délimiteurs connus. Par exemple, vous devrez peut-être isoler une partie de texte entre deux chaînes données.
Une approche courante consiste à utiliser la fonction SUBSTRING. Cependant, une erreur courante lors de l'utilisation de cette fonction est d'inclure l'index de la première chaîne connue dans le calcul de la longueur de la sous-chaîne.
Pour récupérer correctement une sous-chaîne entre deux délimiteurs, le calcul suivant est requis :
CHARINDEX(second_delimiter, @Text) - CHARINDEX(first_delimiter, @Text) + Length(second_delimiter)
Cette formule garantit que la sous-chaîne récupérée commence par le premier délimiteur et se termine par le deuxième délimiteur.
Par exemple, considérons ce qui suit requête :
SELECT SUBSTRING(@Text, CHARINDEX('the dog', @Text), CHARINDEX('immediately', @Text) - CHARINDEX('the dog', @Text) + LEN('immediately'))
Dans cette requête, @Text représente la chaîne d'entrée. En spécifiant les chaînes connues "le chien" et "immédiatement", la requête récupère avec précision la sous-chaîne "le chien avait été très méchant et nécessitait une punition sévère immédiatement."
En corrigeant le calcul de la longueur de la sous-chaîne, vous pouvez efficacement extraire des parties spécifiques de texte dans des chaînes plus grandes à l'aide de SQL.
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!