Trim T-SQL 中的一个字符左侧
Trim left of a character in T-SQL
我正在尝试从我的数据中查找子字符串。
提交的数据格式将始终采用这种格式:
- 供应商名称 - [PropRef]
- 例如'A J Cox - [SCOOPPP0000594]'
我从字符串中需要的是方括号之间的数字 (propRef),我知道我需要先找到 charindex '-' 然后用任何东西替换方括号,但我不确定具体如何这样做。
如有任何建议,我们将不胜感激
类似(假设是 MSSQL)
SELECT
SUBSTRING('A J Cox - [SCOOPPP0000594]',
CHARINDEX('[', 'A J Cox - [SCOOPPP0000594]') + 1,
LEN('A J Cox - [SCOOPPP0000594]') - (CHARINDEX('[', 'A J Cox - [SCOOPPP0000594]') + 1)
)
或者
SELECT
SUBSTRING(YourFieldName,
CHARINDEX('[', YourFieldName) + 1,
LEN(YourFieldName) - (CHARINDEX('[', YourFieldName) + 1)
少了一个CHARINDEX
,字符串上少了一个搜索!
如果“[”和“]”字符是分隔符,则只需使用它们:
DECLARE @SupplierName NVARCHAR(50) = 'A J Cox - [SCOOPPP0000594]'
SELECT SUBSTRING(@SupplierName, 1 + CHARINDEX('[', @SupplierName), CHARINDEX(']', @SupplierName) - CHARINDEX('[', @SupplierName) - 1)
XML 也可以很好地工作:
DECLARE @SupplierName NVARCHAR(50) = 'A J Cox - [SCOOPPP0000594]'
SELECT CAST(REPLACE(replace( @SupplierName,'[','<sup>'),']','</sup>') AS XML).query('//sup/text()')
我正在尝试从我的数据中查找子字符串。
提交的数据格式将始终采用这种格式:
- 供应商名称 - [PropRef]
- 例如'A J Cox - [SCOOPPP0000594]'
我从字符串中需要的是方括号之间的数字 (propRef),我知道我需要先找到 charindex '-' 然后用任何东西替换方括号,但我不确定具体如何这样做。
如有任何建议,我们将不胜感激
类似(假设是 MSSQL)
SELECT
SUBSTRING('A J Cox - [SCOOPPP0000594]',
CHARINDEX('[', 'A J Cox - [SCOOPPP0000594]') + 1,
LEN('A J Cox - [SCOOPPP0000594]') - (CHARINDEX('[', 'A J Cox - [SCOOPPP0000594]') + 1)
)
或者
SELECT
SUBSTRING(YourFieldName,
CHARINDEX('[', YourFieldName) + 1,
LEN(YourFieldName) - (CHARINDEX('[', YourFieldName) + 1)
少了一个CHARINDEX
,字符串上少了一个搜索!
如果“[”和“]”字符是分隔符,则只需使用它们:
DECLARE @SupplierName NVARCHAR(50) = 'A J Cox - [SCOOPPP0000594]'
SELECT SUBSTRING(@SupplierName, 1 + CHARINDEX('[', @SupplierName), CHARINDEX(']', @SupplierName) - CHARINDEX('[', @SupplierName) - 1)
XML 也可以很好地工作:
DECLARE @SupplierName NVARCHAR(50) = 'A J Cox - [SCOOPPP0000594]'
SELECT CAST(REPLACE(replace( @SupplierName,'[','<sup>'),']','</sup>') AS XML).query('//sup/text()')