我是个新手,正在寻找处理数据的方法。
我有一个表,其中一列有不同的输出,类似于以下内容:
id:6C9026DDFA9BEE61A01B020003005467 sub:0012a
id:FCFF9919FB9BEE619C8102000200F879 sub:0012c
id:74CCBCC6FA9BEE618C71010007007DEE sub:0012d
id:0E978F6CFA9BEE61B8D3020005008B4C sub:0012x
id:DE61171CFB9BEE61B8D3020005008C4C sub:0011
id:902D6D2BFA9BEE619EEB010006000288 sub:0010a
id:64018227FB9BEE6194D501000300CBA0 sub:00133
id:62683254FA9BEE619CAB01000400D75F sub:001aa
id:924E2A7DFA9BEE619EEB010006000388 sub:001op
id:B82A1C0CFA9BEE61B6F50200070066AE sub:0012
我想要做的是选择:之后和空格之前的数据
我尝试过使用左和右,但它们只给了我部分答案,我留下了我不想要的部分。中间的字符串很少有相同的长度,可以是 4 到 20 个字符之间的任何字符,所以我什至可以告诉它在 :
之后选择特定的字符数实际上我似乎偶然发现了一个答案
CASE
WHEN CHARINDEX('id:', receipt) > 0
AND CHARINDEX(' sub:', receipt) > 0
THEN
SUBSTRING(
receipt,
CHARINDEX('id:', receipt) + LEN('id:'),
CHARINDEX(' sub:', receipt) - CHARINDEX('id:', receipt) - LEN('id:')
)
ELSE
NULL
END AS 'Packing Ref'