Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak wybrać ciąg między dwoma ciągami w kolumnie w SQL Server?

Przykładowe dane poniżej

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')

możesz użyć

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

Jeśli zauważysz, że usuwam 2 znaki na końcu podciągu, aby wyeliminować 'M' z Manufacturer Part i spację przed właściwym tekstem. Możesz użyć RTRIM ale wybrałem ten sposób.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Grupuj według liczby i łącznej liczby

  2. Zapytania hierarchiczne w SQL Server 2005

  3. Radzenie sobie z błędami o wysokim stopniu ważności w SQL Server

  4. Zapobiegaj wstrzykiwaniu SQL w klauzuli ORDER BY

  5. Jak usunąć określony znak z ciągu, tylko gdy jest to pierwszy lub ostatni znak w ciągu.