我正在使用以下问题的代码: How to extract strings between two special characters in TSQL
DECLARE @c varchar(100)
SET @c = 'Microsoft.SystemCenter.UserActionManager:ServerName_1.domain.net;ServerName_2.domain.net'
SELECT SUBSTRING(@c, CHARINDEX(':', @c) + 1, LEN(@c) - CHARINDEX('.', @c) - CHARINDEX(':', @c))
当前结果:
ServerName_1.domain.net;ServerName_2.
我想搜索一个列/字符串并提取从':'
第一个开始到第一个的字符串'.'
。
我试图得到的结果是:ServerName_1
需要注意的是,服务器名称的长度会有所不同。
此外,当我尝试运行以下查询时:
SELECT
SUBSTRING(Column_Name, CHARINDEX(':', Column_Name) + 1, LEN(Column_Name) - CHARINDEX(':', Column_Name) - CHARINDEX(':', Column_Name))
FROM [dbo].[ServerNameTable]
我收到以下错误:
Msg 537, Level 16, State 3, Line 1
Invalid length parameter passed to the LEFT or SUBSTRING function.
提前谢谢了。