【发布时间】:2019-04-05 16:14:55
【问题描述】:
我正在将字符串拆分为其基本组件。我已经弄清楚了第一部分并且工作正常;
SELECT(SUBSTRING(Field,0,CHARINDEX('_',Field,0))) AS POS1
我目前遇到的问题是第二和第三部分。整个字符串的格式是; character_character_character(其中每个字段都可以包含不同数量的字符)。
SUBSTRING(Field, CHARINDEX('-',Field)+1, CHARINDEX('_',Field, CHARINDEX('_',Field)+1 - CHARINDEX('_',Field)-1)) AS POS2
这在某些情况下有效,但在其他情况下会截断。我一直盯着这个看太久了,以至于我对解决方案视而不见。
另外,要解决第三个位置。
欢迎任何关于为什么它会按应有的方式工作的建议。
【问题讨论】:
-
非常适合使用带有变量分隔符的字符串拆分函数
_sqlservercentral.com/blogs/querying-microsoft-sql-server/2013/… -
T-SQL split string的可能重复
-
你是按下划线还是破折号分割?您的查询中有“CHARINDEX('-',Field)+1”和“CHARINDEX('_',Field...”
标签: sql-server string substring charindex