Chaîne SQL dans une table temporaire

CREATE FUNCTION Split (@Text NVARCHAR (4000), @ Sign NVARCHAR (4000))
RETURNS @tempTable TABLE (id INT IDENTITY (1,1) PRIMARY KEY, [VALUE] NVARCHAR (4000))
AS
BEGIN
DECLARE @StartIndex INT- L'emplacement pour démarrer la recherche
DECLARE @FindIndex INT-L'emplacement trouvé
DECLARE @Content VARCHAR (4000) -La valeur trouvée--
Initialiser certaines variables
SET @StartIndex = 1-La position de recherche de la chaîne dans T-SQL commence à partir de 1 de
SET = 0 le FindIndex @

- cycle commence la virgule chaîne de recherche
WHILE (@StartIndex <= LEN (@Text))
BEGIN
- Trouver une chaîne de fonctions charindex premier paramètre est une chaîne pour la recherche
- deuxième paramètre Où trouver cette chaîne
-le troisième paramètre est où commencer la recherche
-la valeur de retour est où la chaîne est trouvée
SELECT @FindIndex = CHARINDEX (@ Sign, @ Text, @ StartIndex) -justez
si elle a été trouvée ou non Recherchez et renvoyez 0
IF (@FindIndex = 0 OU @FindIndex IS NULL)
BEGIN
- si pas trouvé exprimé en regardant par- dessus
le SET @FindIndex = LEN (@Text) + +1
END
- fonction de chaîne d'interception SUBSTRING premier paramètre est la chaîne à prendre
- un second paramètre est la position de départ
- -Le troisième paramètre est la longueur de l'interception-
@ FindIndex- @ StartIndex indique l'emplacement à rechercher -l'emplacement où commencer la recherche = la longueur à intercepter--
LTRIM et RTRIM sont les espaces pour supprimer les côtés gauche et droit de la chaîne
SET @Content = LTRIM (RTRIM (SUBSTRING (@ Text, @ StartIndex, @ FindIndex- @ StartIndex)))
-Initialiser la position de la prochaine recherche
SET @StartIndex = @ FindIndex + 1
-Insérer la valeur trouvée dans le type de table à renvoyer dans
le INSERT INTO @tempTable ([VALUE]) les valeurs (@Content)
END
le RETOUR
FIN

SELECT * FROM dbo.Split (remplacez ('' 'JB0051654' ',' 'JB0331768' ',' 'JB0011698' '', '' '', ''), ','))

Je suppose que tu aimes

Origine www.cnblogs.com/linjincheng/p/12671941.html
conseillé
Classement