小编Lor*_*lus的帖子

(SQL) 识别字段中字符串格式多次出现的位置

我需要将叙述字段(自由文本)拆分为多行。目前的格式如下:

Case_Reference | Narrative
```````````````|`````````````````````````````````````
XXXX/XX-123456 | [Endless_Text up to ~50k characters]
Run Code Online (Sandbox Code Playgroud)

在作为文本的叙述字段中,各个条目(当不同的代理对案件做了某事时)以条目日期开头,后跟两个空格(即'dd/mm/yyyy '),日期值随着同一字段中的每个条目而变化。

换句话说,在寻找更好的分隔符之后,我唯一可以使用的就是这种格式的字符串,因此我需要识别叙述文本中格式(掩码会是更好的单词吗?)匹配的多个位置'dd/mm/yyyy '

我可以识别多次出现的一致字符串,没有问题,但它在我本质上寻找的地方识别它:

'%[0-9][0-9]/[0-9][0-9]/[0-9][0-9][0-9][0-9] %'

PATINDEX当然返回这个的第一次出现/位置,但据我所知,没有办法“修改”这个(即创建的函数)以允许拾取这个的其余出现/位置我们可以CHARINDEX(因为PATINDEX没有起始位置参数)。

为了清楚起见,我并不是在寻找代码来直接分隔它,因为我需要进一步操作每个条目,因此它纯粹是我正在寻找的叙述文本中多次出现字符串的位置。

任何帮助将非常感激。

为了清楚起见,没有选项可以执行此预导入操作,因此需要对此登陆数据进行此操作。

期望的输出是

 Case_Reference1 | 1st_Position_of_Delimiter_String  
 Case_Reference1 | 2nd_Position_of_Delimiter_String  
 Case_Reference2 | 1st_Position_of_Delimiter_String  
 Case_Reference2 | 2nd_Position_of_Delimiter_String  
 Case_Reference2 | 3rd_Position_of_Delimiter_String  
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2012

3
推荐指数
1
解决办法
2853
查看次数

标签 统计

sql ×1

sql-server ×1

sql-server-2012 ×1