Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment sélectionner une chaîne entre deux chaînes dans une colonne dans SQL Server ?

Pour un exemple de données ci-dessous

declare @table table (id int identity(1,1), data varchar(1000), descr varchar(1000))

insert into @table values ('Manufacturer Name : Manufacturer 1 Manufacturer Part : asjdfj','First Manufacturer')
insert into @table values ('Manufacturer Name : Manufacturer 2 Manufacturer Part : asjsadfasdfdfj','Second Manufacturer')
insert into @table values ('Manufacturer Name : Manufacturer 3 Manufacturer Part : er6ty','Third Manufacturer')

vous pouvez utiliser

select substring(data, 
                 charindex('Manufacturer Name : ', data) + len('Manufacturer Name : '),
                 charindex('Manufacturer Part : ',data) - len('Manufacturer Part :') - 2) as Manufacturer_Name
       , descr
from @table

Si vous remarquez que je supprime 2 caractères à la fin de la sous-chaîne pour éliminer 'M' de Manufacturer Part et l'espace avant le texte réel. Vous pouvez utiliser RTRIM mais j'ai choisi cette voie.