sql >> Database teknologi >  >> RDS >> Sqlserver

I SQL Server, hvordan man opretter mens loop in select

Du kunne gøre sådan noget .....
Dit bord

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

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

SELECT * FROM TestTable

Mit forslag

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

Resultatsæt

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. Sådan bruger du INNER JOIN i SQL

  2. Brug af PHP "indsæt flere" til at indsætte alle 4 rækker på samme tid

  3. MySQL-forespørgsel i en løkke vs brug af en SQL-join

  4. io.vertx.mysqlclient.MySQLPool.query ().execute udføres aldrig rigtigt og returnerer intet