Dans SQL Server, comment créer une boucle en sélectionnant

de données sera comme ceci:

    id  |  data
    ---- | ---------
    1   |  AABBCC
    2   |  FFDD
    3   |  TTHHJJKKLL

ce que le résultat que je veux c'est

    id  |  data
    ---- | ---------
    1   |  AA
    1   |  BB
    1   |  CC
    2   |  FF
    2   |  DD
    3   |  TT
    3   |  HH
    3   |  JJ
    3   |  KK
    3   |  LL 

J'ai un code sql à l'aide du curseur

DECLARE @table2 table ( id INTEGER, data VARCHAR(500))

DECLARE Cur CURSOR FOR
SELECT id FROM table1

OPEN Cur 

WHILE ( @@FETCH_STATUS = 0 )
    BEGIN
        DECLARE @LoopNum INTEGER
        DECLARE @tempID INTEGER
        DECLARE @tempDATA VARCHAR(255)
        FETCH NEXT FROM Cur INTO @tempID
        SET @tempDATA = SELECT data from table1 where id = @teampID
        SET @LoopNUM = 0
        WHILE @LoopNum< len(@tempDATA) / 2
            BEGIN
            INSERT INTO table2 (id, data)
            VALUES( @tempID, SUBSTRING(@tempDATA, @LoopNum * 2 +1, 2))
            SET @LoopNum = @LoopNum + 1
        END
    END

CLOSE Cur 
DEALLOCATE Cur 

SELECT * FROM table2

Je ne veux pas utiliser le CURSEUR parce que c'est trop lent, j'ai beaucoup de données.
Est-ce quelqu'un a une bonne idée pour elle? Est-il possible?

source d'informationauteur user2976421