SQL - 为 1 个字段组合 2 个提取函数

SQL - Combining 2 Extracting Functions for 1 field

我有一个包含用户配置文件的字符串,其中数据的第一部分始终相同,第二部分数据始终可变。 我需要提取中间部分

字符串示例;

ABC_01_Operator ,XX=ALPHABET-XYZ
ABC_07_Admin ,XX=ALPHABET-XYZ

我要提取的数据:

01_Operator
07_Admin

我有 2 个提取部分的函数,但我找不到组合它们的方法

1) SUBSTRING (MyField, 5, 12) to start from 01 / 07
2) LEFT(MyField, CHARINDEX(',XX', MyField) - 1)

试试这个答案:

DECLARE @MyField VARCHAR(100)='ABC_01_Operator ,XX=ALPHABET-XYZ'

SELECT RIGHT(LEFT(@MyField, CHARINDEX(',XX', @MyField) - 1)
    ,LEN(LEFT(@MyField, CHARINDEX(',XX', @MyField) - 1))-3)

结果:

01_Operator 
07_Admin 

像这样将 (2) 作为 (1) 的第一个参数(为子字符串长度设置一个合理的高值):

select SUBSTRING(LEFT(@MyField, CHARINDEX(',XX', @MyField) - 1),5, 1000);

您可以同时使用这两个函数来生成您的结果

SELECT substring(MyField, 5, charindex('XX', MyField, 1)-2)