Comment trouver les caractères spéciaux dans une chaîne et se diviser en mots dans SQL Server?

StackOverflow https://stackoverflow.com/questions/20353627

  •  25-08-2022
  •  | 
  •  

Question

J'ai une chaîne comme ce 'suzuki gsx_1300 / twowheeler'

Maintenant, je veux diviser la chaîne ci-dessus en mots et insérer le mot un par un en une seule table.

DECLARE @a TABLE (a nvarchar(500));
declare @RTADESC nvarchar(100) = 'SUZUKI GSX_1300/TWOWHEELER';
declare @b int =1;
declare @c int;
set @c=CHARINDEX('_',@RTADESC,@b);

WHILE @c>0
        BEGIN
            SELECT @b= CHARINDEX('_' ,@RTADESC,@b)+1
            INSERT INTO @a
            SELECT SUBSTRING(@RTADESC,0,@b-1)
            set @c=CHARINDEX('_',@RTADESC,@b)
        END

        SELECT * FROM @a

Maintenant, je veux voir les données du tableau @a comme ci-dessous

SUZUKI
GSX
1300
TWOWHEELER

En fonction de cela, je chercherai des fabricants de véhicules dans ma table.

Veuillez donc aider à ce que je peux diviser ma chaîne, je peux également obtenir différents caractères spéciaux à l'avenir.

Était-ce utile?

La solution

Il existe d'excellentes options disponibles sur: http://www.sqlperformance.com/2012/07/t-sql-queries/split-strings

Il existe des solutions qui vous permettent également de passer le délimiteur, vous pouvez donc passer dans différentes personnes à l'avenir.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top