我想获取表格列中两个字符串之间的字符串。如何选择列?我已经写了两边的字符串。任何人都可以帮助我如何在此处包含字符串中的列名吗?
DECLARE @Text NVARCHAR(MAX)
SELECT
SUBSTRING(@Text, CHARINDEX('Manufacturer Name : ', @Text),
CHARINDEX('Manufacturer Part',@text) - CHARINDEX('Manufacturer Name : ', @Text) + LEN('Manufacturer Part'))
FROM
tbIMPACArchiveNew
WHERE
(Description LIKE '%Manufacturer Name: %'
OR Description LIKE '%Manufacturer Name : %')
AND Description LIKE '%Manufacturer Part%'
预期结果:
Column A Expected result
Manufacturer Name : ABC Manufacturer Part Number : XVB-C2B4 ABC
Manufacturer Name : DEF Manufacturer Part Number : 3RH1924-1GP11 DEF
Manufacturer Name : ABJ Manufacturer Part Number : FLDP-IOM248-0001 ABJ
Manufacturer Name : HIJ Manufacturer Part Number : L12/5MLLD0035 HIJ
Manufacturer Name : abhkdk Manufacturer Part Number : PEH1083510 abhkdk
Manufacturer Name : 1245 PUMP Manufacturer Part Number : 02-1010-55 1245
最佳答案
对于以下示例数据
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')
您可以使用
select substring(data,
charindex('Manufacturer Name : ', data) + len('Manufacturer Name : '),
charindex('Manufacturer Part : ',data) - len('Manufacturer Part :') - 2) as Manufacturer_Name
, descr
from @table
如果您注意到我正在删除子字符串末尾的 2 个字符以消除
Manufacturer Part
中的 'M'和实际文本之前的空间。您可以使用 RTRIM
但我选择了这种方式。
关于sql - 如何在 SQL Server 中的一列中的两个字符串之间选择一个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45618519/