从字符串中取出子串

时间:2013-08-26 13:56:38

标签: sql sql-server

我有一个像

这样的关键字符串
Empl:9998 Earn Code:7704 Seq:1

我需要从字符串中取出员工编号9998 员工编号始终从第6位开始,在第二位E之前结束 我已经玩过所有字符串功能但没有成功。我使用MS SQL。

4 个答案:

答案 0 :(得分:3)

substring功能可以帮助您入门,但您还需要charindex。 (我建议搜索空格字符的索引)

答案 1 :(得分:3)

以下声明将执行此操作:

select substring(empno, 6,
                 charindex('E', empno, 6) - 6)
from (select 'Empl:9998 Earn Code:7704 Seq:1' as empno) t;

如果您不想要“数字”中的空格,您可能真的想要-7

答案 2 :(得分:0)

试试这个

SELECT x = SUBSTRING('abcdef', 2, 3);

Here is the result set.    
x    
---- 
bcd

答案 3 :(得分:0)

这应该始终有效

Match match = Regex.Match(input, @"Empl:(\d+)", RegexOptions.IgnoreCase);
EmplyId = match.Groups[1].Value