sql >> Databasteknik >  >> RDS >> Sqlserver

I SQL Server, hur man skapar medan loop in välj

Du skulle kunna göra något sånt här .....
Ditt bord

CREATE TABLE TestTable 
(
ID INT,
Data NVARCHAR(50)
)
GO

INSERT INTO TestTable
VALUES (1,'AABBCC'),
       (2,'FFDD'),
       (3,'TTHHJJKKLL')
GO

SELECT * FROM TestTable

Mitt förslag

CREATE TABLE #DestinationTable
(
ID INT,
Data NVARCHAR(50)
)
GO  
    SELECT * INTO #Temp FROM TestTable

    DECLARE @String NVARCHAR(2)
    DECLARE @Data NVARCHAR(50)
    DECLARE @ID INT

    WHILE EXISTS (SELECT * FROM #Temp)
     BEGIN 
        SELECT TOP 1 @Data =  DATA, @ID = ID FROM  #Temp

          WHILE LEN(@Data) > 0
            BEGIN
                SET @String = LEFT(@Data, 2)

                INSERT INTO #DestinationTable (ID, Data)
                VALUES (@ID, @String)

                SET @Data = RIGHT(@Data, LEN(@Data) -2)
            END
        DELETE FROM #Temp WHERE ID = @ID
     END


SELECT * FROM #DestinationTable

Resultatuppsättning

ID  Data
1   AA
1   BB
1   CC
2   FF
2   DD
3   TT
3   HH
3   JJ
3   KK
3   LL

DROP Temp-tabeller

DROP TABLE #Temp
DROP TABLE #DestinationTable


  1. Postgresql vänster yttre koppling på json-array

  2. Sammanfoga tabeller baserat på maxvärdet

  3. Hur ansluter jag till MySQL på Amazon EC2 från Linux / Mac?

  4. utlösa SOLR-uppdatering efter MySQL-uppdatering