在较长的字符串上解析名称

时间:2018-07-13 02:46:42

标签: sql split sql-server-2016

嗨,我正尝试使用parsename从长文本中拆分一个值并替换(在SELECT中)

它对最后两个字符串正常,但对第一个字符串无效。我能看到的唯一原因是它不能使用更长的字符串

  

PK-Practice Manager ID:34926,PracticeManagerName:Old--New-Julie Abdilla |是代表:Old--New-True |启用实践访问组合:Old--New-True | EnableRemittanceAdviceAuthority:Old--New-真实|

     

PK实践管理者ID:38864,EnableRemittanceAdviceAuthority:Old-False-New-True |

     

PK-Practice Manager ID:38691,是代表:Old--New-False |启用实践访问组合:Old--New-False | EnableRemittanceAdviceAuthority:Old--New-True |

我想将其分割为','并仅使用字符串的第一部分

我愿意

select parsename(replace(@text, ',', '.'), 2)

第一个字符串返回null,其他则返回正确的值

1 个答案:

答案 0 :(得分:0)

由于我不担心拆分的第二部分,所以我就这么做了

parsename(replace(substring(@text, 0, 157), ',', '.'),2)

我手动检查了它,所以我在索引157之后添加的任何字符都将开始返回null,因此我想这是parsename的限制