文字列は常に固定長であるため、次のように実行できます。
DECLARE @s VARCHAR(50) = '01AAAA02BBBB03CCCC';
SELECT *
FROM
(
SELECT SUBSTRING(@s, 01, 2) AS ID, SUBSTRING(@s, 3, 4) AS Name
UNION ALL
SELECT SUBSTRING(@s, 7, 2) AS ID, SUBSTRING(@s, 9, 4) AS Name
UNION ALL
SELECT SUBSTRING(@s, 13, 2) AS ID, SUBSTRING(@s, 15, 4) AS Name
) t;
これはあなたに与えるでしょう:
ID Name
01 AAAA
02 BBBB
03 CCCC
更新:テーブルの列からこの文字列を取得する場合は、次のように実行できます。
DECLARE @t table(name varchar(50));
INSERT INTO @t VALUES
('01AAAA02BBBB03CCCC'),
('01DDDD02BBBB03CCCC'),
('01HHHH02QQQQ03CCCC'),
('01IIII02MMMM03CCCC');
SELECT *
FROM
(
SELECT SUBSTRING(name, 1, 2) AS ID, SUBSTRING(name, 3, 4) AS Name
FROM @t
UNION ALL
SELECT SUBSTRING(name, 7, 2) AS ID, SUBSTRING(name, 9, 4) AS Name
FROM @t
UNION ALL
SELECT SUBSTRING(name, 13, 2) AS ID, SUBSTRING(name, 15, 4) AS Name
FROM @t
) t;
これにより、次のようになります。
ID Name
01 AAAA
01 DDDD
01 HHHH
01 IIII
02 BBBB
02 BBBB
02 QQQQ
02 MMMM
03 CCCC
03 CCCC
03 CCCC
03 CCCC