Sql 如何从给定字符中获取子字符串?

Sql 如何从给定字符中获取子字符串?,sql,sql-server,sql-server-2008-r2,Sql,Sql Server,Sql Server 2008 R2,我有以下表格中的登录名: login1 domain1\login2 otherDomain\login3 后勤1 域1\login2 其他域\login3 数据的格式始终为: 域\登录 或 登录 我需要在表单中检索不带前缀的用户登录(将所有内容保留在“\”的右侧): 后勤1 登录2 登录3 如何在SQL Server中执行此操作?您可以这样做: print substring(@s, charindex('\', @s) + 1, len(@s)); 这将获取\的索引,然后添加1以获

我有以下表格中的登录名:

login1 domain1\login2 otherDomain\login3 后勤1 域1\login2 其他域\login3 数据的格式始终为:
域\登录

登录

我需要在表单中检索不带前缀的用户登录(将所有内容保留在“\”的右侧):

后勤1 登录2 登录3
如何在SQL Server中执行此操作?

您可以这样做:

print substring(@s, charindex('\', @s) + 1, len(@s));

这将获取
\
的索引,然后添加1以获取其后面的位置,并执行从该位置到字符串末尾的
子字符串(在SQL 2008 R2中这是正常的)。

您可以这样做:

print substring(@s, charindex('\', @s) + 1, len(@s));

这将获取
\
的索引,然后添加1以获取其后面的位置,并从该位置执行
子字符串
(在SQL 2008 R2中这是正常的)。

是否可以包含
'abc\xyz\login4'
之类的数据?您尝试了什么?您到底被困在哪里?查看和。是否可能有诸如
'abc\xyz\login4'
之类的数据?您尝试了什么?你到底被困在哪里了?看看和。好的,它工作了,谢谢。。我尝试过类似的方法,但我忘记了对于charindex,“返回的起始位置是基于1的,而不是基于0的。”对,它很有效,谢谢。。我尝试过类似的方法,但我忘记了对于charindex,“返回的起始位置是基于1的,而不是基于0的。”