Diviser la chaîne en deux colonnes

MAK

J'ai la chaîne suivante à diviser en deux colonnes:

Donné:

DECLARE @String VARCHAR(MAX) = 'Mak^1,Jak^2,Smith^3,Lee^4,Joseph^5'

Je veux le diviser en deux colonnes:

column1  column2
-----------------
Mak      1
Jak      2
Smith    3
Lee      4
Joseph   5

Mon essai:

Fonction table:

CREATE FUNCTION [dbo].[udf_Split]
(
@InputString VARCHAR(8000), 
@Delimiter VARCHAR(50)
)
RETURNS @Items TABLE (ID INTEGER IDENTITY(1,1), Item VARCHAR(8000))

AS
BEGIN
      IF @Delimiter = ' '
      BEGIN
            SET @Delimiter = ','
            SET @InputString = REPLACE(@InputString, ' ', @Delimiter)
      END
      IF (@Delimiter IS NULL OR @Delimiter = '')
            SET @Delimiter = ','

      DECLARE @Item VARCHAR(8000)
      DECLARE @ItemList VARCHAR(8000)
      DECLARE @DelimIndex INT

      SET @ItemList = @InputString
      SET @DelimIndex = CHARINDEX(@Delimiter, @ItemList, 0)
      WHILE (@DelimIndex != 0)
      BEGIN
            SET @Item = SUBSTRING(@ItemList, 0, @DelimIndex)
            INSERT INTO @Items VALUES (@Item)

            SET @ItemList = SUBSTRING(@ItemList, @DelimIndex+1, LEN(@ItemList)-@DelimIndex)
            SET @DelimIndex = CHARINDEX(@Delimiter, @ItemList, 0)
      END -- End WHILE

      IF @Item IS NOT NULL 
      BEGIN
            SET @Item = @ItemList
            INSERT INTO @Items VALUES (@Item)
      END

      ELSE INSERT INTO @Items VALUES (@InputString)

      RETURN

END 

Appel de fonction:

SELECT Item FROM [dbo].[udf_Split](@String ,',');

Production:

Item
--------------
Mak^1
Jak^2
Smith^3
Lee^4
Joseph^5
Zohar Peled

Tout d'abord, veuillez noter que SQL Server 2008 r2 ne bénéficie pas du support étendu. Il est grand temps de passer à une version plus récente.

Pour une seule chaîne, j'utiliserais probablement un petit tour de magie SQL dynamique:

DECLARE @String VARCHAR(MAX) = 'Mak^1,Jak^2,Smith^3,Lee^4,Joseph^5'

DECLARE @Sql VARCHAR(MAX) = 'SELECT Name,Id FROM (VALUES (''' + REPLACE(REPLACE(REPLACE(@String,'''',''''''), ',', '),('''), '^', ''',') + ')) V(Name, Id)';

-- @Sql now contains this:
-- SELECT Name,Id FROM (VALUES ('Mak',1),('Jak',2),('Smith',3),('Lee',4),('Joseph',5)) V(Name, Id)

EXEC(@Sql)

Résultats:

Name    Id
Mak     1
Jak     2
Smith   3
Lee     4
Joseph  5

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

diviser la chaîne d'une colonne en deux colonnes

Diviser la chaîne par deux délimiteurs en deux colonnes

Diviser la chaîne en plusieurs colonnes

Comment diviser la chaîne d'une colonne en deux colonnes qui correspondent à la liste ?

Diviser la chaîne en deux entiers

diviser la chaîne en deux tableaux

Python: diviser la chaîne en deux colonnes par plus d'un séparateur

diviser une chaîne en seulement deux colonnes

diviser les chaînes en deux colonnes

Diviser la carte en deux colonnes pyspark

Diviser la chaîne en deux chaînes distinctes

Diviser la chaîne en deux chaînes avec regex

Diviser la colonne de dataframe contenant la liste à l'intérieur d'une chaîne en deux colonnes

Diviser la chaîne mixte en colonnes en R

Diviser la valeur de la chaîne en plusieurs colonnes

R - Diviser la confidentialité de la chaîne en colonnes

Diviser la chaîne en deux variables en C

Comment diviser la chaîne en deux tableaux en Php

Diviser la chaîne dans data.frame data.table en deux colonnes avec Base R

Diviser la chaîne de ligne en colonnes

Comment diviser la chaîne par virgule en nouvelles colonnes?

Diviser la chaîne en lignes et colonnes

TSQL - Diviser la chaîne délimitée en colonnes

Diviser la colonne de chaîne JSON en plusieurs colonnes

Python - diviser la chaîne en plusieurs colonnes

Diviser la chaîne en trois colonnes dans BigQuery

Diviser la chaîne en plusieurs lignes et colonnes

Besoin de diviser la chaîne Java en deux tableaux

Comment diviser la chaîne en deux parties?

TOP liste

  1. 1

    Comment exécuter un fichier python avec des droits d'administrateur dans pycharm

  2. 2

    obtenir le nombre de marqueur affiché sur la carte

  3. 3

    comment obtenir un objet de requête dans les tests unitaires de django?

  4. 4

    Microsoft.WebApplication.targets

  5. 5

    Comment ajouter un texte dans un texte Python/Tkinter

  6. 6

    comment convertir une chaîne en un tuple dateutil jour de la semaine sans utiliser eval

  7. 7

    mongo kafka connect source

  8. 8

    Comment obtenir l'intégration contextuelle d'une phrase dans une phrase à l'aide de BERT ?

  9. 9

    Dans les modèles Hugo, comment vérifier la longueur du tableau de fichiers JSON?

  10. 10

    Référencement des assemblys de structure .net 4.7 dans la solution .net core 2

  11. 11

    Comment obtenir tous les champs d'un objet (y compris sa superclasse), à l'aide de l'API Mirrors de Dart?

  12. 12

    Exécuter la requête externe pour chaque date obtenue à partir de la requête interne

  13. 13

    Recherche de dicton Jinja2 à l'aide d'une clé variable

  14. 14

    Laravel 8: Attempt to read property "id" on null

  15. 15

    définir une propriété pour chaque nœud dans neo4j

  16. 16

    Vérifier la longueur du nombre à partir du message, puis utiliser la valeur dans l'instruction

  17. 17

    Comment changer le navigateur par défaut en Microsoft Edge pour Jupyter Notebook sous Windows 10 ?

  18. 18

    Aide de variable de débogage pprint jinja2

  19. 19

    Impossible d'accéder à la vue personnalisée pendant le test de l'interface utilisateur dans XCode

  20. 20

    Impression de la longueur du chemin le plus court dans le labyrinthe

  21. 21

    Algorithme: diviser de manière optimale une chaîne en 3 sous-chaînes

chaudétiquette

Archive