sql >> データベース >  >> RDS >> Sqlserver

コンマ区切り値の挿入 SQL Server 2005 で

    (完全な例)のようなものを見てください

    DECLARE @Inserts TABLE(
            ID INT,
            Val1 INT,
            Val2 INT,
            Val3 INT
    )
    
    DECLARE @Param1 INT,
            @Param2 VARCHAR(100),
            @Param3 INT,
            @Param4 VARCHAR(100)
    
    SELECT  @Param1 = 17,
            @Param2 = '127,204,110,198',
            @Param3 = 7,
            @Param4 = '162,170,163,170'
    
    DECLARE @Table1 TABLE(
            ID INT IDENTITY(1,1),
            Val INT
    )
    
    DECLARE @Table2 TABLE(
            ID INT IDENTITY(1,1),
            Val INT
    )
    
    DECLARE @textXML XML        
    
    SELECT    @textXML = CAST('<d>' + REPLACE(@Param2, ',', '</d><d>') + '</d>' AS XML)
    INSERT INTO @Table1
    SELECT  T.split.value('.', 'nvarchar(max)') AS data
    FROM    @textXML.nodes('/d') T(split)
    
    SELECT    @textXML = CAST('<d>' + REPLACE(@Param4, ',', '</d><d>') + '</d>' AS XML)
    INSERT INTO @Table2
    SELECT  T.split.value('.', 'nvarchar(max)') AS data
    FROM    @textXML.nodes('/d') T(split)
    
    INSERT INTO @Inserts
    SELECT @Param1,
            t1.Val,
            @Param3,
            t2.Val
    FROM    @Table1 t1 INNER JOIN
            @Table2 t2 ON t1.ID = t2.ID
    
    SELECT *
    FROM @Inserts
    


    1. Merge ステートメントに関するヘルプが必要

    2. 降順からのMySQLの制限

    3. PostgreSQL:generate_series()を使用して列の欠落している数値を特定する方法は?

    4. 単一テーブルのエンティティ生成