【发布时间】:2013-11-18 01:46:06
【问题描述】:
找到这个解决方案在斜杠()字符后获取子字符串
DECLARE @st1 varchar(10)
SET @st1 = 'MYTEST\aftercompare'
SELECT @st1
,SUBSTRING(@st1, CHARINDEX('\', @st1) + 1, LEN(@st1))
但是有没有办法在第二个斜杠甚至更多之后获取子字符串?
DECLARE @st1 varchar(50)
--Added more slashes
SET @st1 = 'MYTEST\aftercompare\slash2\slash3\slash4'
SELECT @st1
--This part would need some work
--,SUBSTRING(@st1, CHARINDEX('\', @st1) + 1, LEN(@st1))
并且只获取斜线之间的子字符串。
值:[1] "aftercompare" - [2] "slash2" - [3] "slash3" - [4] "slash4"
【问题讨论】:
-
为什么要在 T-SQL 中这样做?在这方面,您的客户端语言会更加高效。
-
@AaronBertrand 完全同意 +1
-
使用列信息如下格式的表格:“8:00-10:00\男\4分部\Room1”“10:00-12:00\女\8分部\Room2" 并且无法访问原始插入。并希望为每个场景创建维度。
标签: sql tsql sql-server-2008-r2 substring trim