选择单元格中 2 个字符之间的数据

问题描述 投票:0回答:1

我是个新手,正在寻找处理数据的方法。

我有一个表,其中一列有不同的输出,类似于以下内容:

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 个字符之间的任何字符,所以我什至可以告诉它在 :

之后选择特定的字符数
sql
1个回答
0
投票

实际上我似乎偶然发现了一个答案

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'
© www.soinside.com 2019 - 2024. All rights reserved.