首页 > 解决方案 > SQL拆分字符串并结合第一次和第二次出现

问题描述

我有一个字符串如下

Test1: Test Exp: Test3

我正在尝试提取字符串,以便输出应该是

Test1: Test Exp

我尝试如下

DECLARE @myString NVARCHAR(MAX) = 'Test1: Test Exp: Test3'
SELECT SUBSTRING(@myString,0,CHARINDEX(':',@myString,0)) AS firstPart,
SUBSTRING(@myString,CHARINDEX(':',@myString,0)+1,LEN(@myString)) AS secondPart

这给出了输出

Test1 Test Exp: Test3

标签: sqlsql-servertsql

解决方案


要获得Test1: Test Ex,您可以执行以下操作:

SELECT SUBSTRING(@myString, 0, LEN(@myString) - CHARINDEX(':', REVERSE(@myString)))

那个部分:

LEN(@myString) - CHARINDEX(':', REVERSE(@myString))

基本上充当LastIndexOf(':')


推荐阅读