0
votes

Comment séparer une chaîne et insérer dans la table?

Ma question est que j'ai une chaîne comme celle-ci xxx

et je veux insérer ces éléments dans différentes lignes telles que ceci xxx

Comment puis-je le faire?


3 Réponses :


0
votes

Vous pouvez essayer cette requête.

DECLARE @str VARCHAR(500) = 'Red,House|White,Car|Blue,Table'
CREATE TABLE #Temp (tDay VARCHAR(100))
WHILE LEN(@str) > 0
BEGIN
    DECLARE @TDay VARCHAR(100)
    IF CHARINDEX('|',@str) > 0
        SET  @TDay = SUBSTRING(@str,0,CHARINDEX('|',@str))
    ELSE
        BEGIN
        SET  @TDay = @str
        SET @str = ''
        END
  INSERT INTO  #Temp VALUES (@TDay)
 SET @str = REPLACE(@str,@TDay + '|' , '')
 END

 SELECT * 
 FROM #temp

 SELECT tday,
    PARSENAME(REPLACE(tday,',','.'),2) 'Col1' ,
    PARSENAME(REPLACE(tday,',','.'),1) 'Col2'
FROM #temp


0 commentaires

1
votes

Peut-être que c'est ce que vous recherchez.

SELECT Substring(value, 1,Charindex(',', value)-1)  as col1
,  Substring(value, Charindex(',', value)+1, LEN(value)) as  col2
FROM STRING_SPLIT('Red,House|White,Car|Blue,Table', '|')


0 commentaires

0
votes

Je vais avec utiliser string_split () ou une fonction de séparateur de chaîne similaire que vous pouvez ajouter à votre base de données. Cependant, je ferais former la logique d'extrait finale comme suit: xxx


0 commentaires