我有varchar字符串,需要返回第一个全局值-8679926300927194610我的字符串:
declare @erservice varchar(max) = 'globalid=8679926300927194610,ou=services,globalid=00000000000000000000'
您可以执行以下操作。假设字符串总是以globalid=开头,并且数字后面有一个逗号。
SELECT SUBSTRING(@erservice,10,CHARINDEX(',',@erservice)-10)
您可以使用子字符串和charindex,因为字符串总是以globalid=n 开头
为了便于阅读,我将用@yText替换字符串(@yText = 'globalid=8679926300927194610,ou=services,globalid=00000000000000000000')
DECLARE @erservice varchar(max) = substring(@yText, 10, CHARINDEX(',',@yText)-10)
Substring将为您提供开始提取的偏移量,而Charindex将通过搜索逗号的位置来显示数字的末尾。
http://social.technet.microsoft.com/wiki/contents/articles/17948.t-sql-right-left-substring-and-charindex-functions.aspx