将字符串分成两部分并选择两个变量

问题描述:

我使用的是 SQL Server 2005.我有一个带有特殊字符 : 的字符串,例如:

I am using SQL Server 2005. I have a string with a special character : like:

XYZ:xyz@mail.com

我想把这个字符串分成两个子字符串并选择成变量.特殊字符 : 只是一个分隔符.

I want to divide this string into two sub-strings and select into variables. The special character : is just a separator.

@variable1=XYZ
@variable2=xyz@mail.com

请指导我如何实现.

字符串分割指南:

  1. 使用CHARINDEX找到的位置:.

使用SUBSTRING抓取:位置之前的所有字符,放入@variable1.

Use SUBSTRING to grab all the characters before the position of :, and put them into @variable1.

使用SUBSTRING抓取:位置后的所有字符,存入@variable2.

Use SUBSTRING to grab all the characters after the position of :, and store them into @variable2.

一个可能的实现:

DECLARE @string varchar(max), @variable1 varchar(max), @variable2 varchar(max);
SET @string = 'XYZ:xyz@mail.com';

SELECT
  @variable1 = SUBSTRING(S, 1, P - 1),
  @variable2 = SUBSTRING(S, P + 1, L - P)
FROM (
  SELECT
    S = @string,
    P = CHARINDEX(':', @string),
    L = LEN(@string)
) s;

SELECT @variable1, @variable2;

输出:

-------------------- --------------------
XYZ                  xyz@mail.com