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

SQLServerで文字列を分割する

    この機能を試してください

    CREATE FUNCTION [dbo].[func_Split] 
        (   
        @DelimitedString    varchar(8000),
        @Delimiter              varchar(100) 
        )
    RETURNS @tblArray TABLE
        (
        ElementID   int IDENTITY(1,1),  -- Array index
        Element     varchar(1000)               -- Array element contents
        )
    AS
    BEGIN
    
        -- Local Variable Declarations
        -- ---------------------------
        DECLARE @Index      smallint,
                        @Start      smallint,
                        @DelSize    smallint
    
        SET @DelSize = LEN(@Delimiter)
    
        -- Loop through source string and add elements to destination table array
        -- ----------------------------------------------------------------------
        WHILE LEN(@DelimitedString) > 0
        BEGIN
    
            SET @Index = CHARINDEX(@Delimiter, @DelimitedString)
    
            IF @Index = 0
                BEGIN
    
                    INSERT INTO
                        @tblArray 
                        (Element)
                    VALUES
                        (LTRIM(RTRIM(@DelimitedString)))
    
                    BREAK
                END
            ELSE
                BEGIN
    
                    INSERT INTO
                        @tblArray 
                        (Element)
                    VALUES
                        (LTRIM(RTRIM(SUBSTRING(@DelimitedString, 1,@Index - 1))))
    
                    SET @Start = @Index + @DelSize
                    SET @DelimitedString = SUBSTRING(@DelimitedString, @Start , LEN(@DelimitedString) - @Start + 1)
    
                END
        END
    
        RETURN
    END
    

    使用例 –関数にコンマ区切り文字列と必要な区切り文字を渡すだけです。

    DECLARE @SQLStr varchar(100)
    SELECT @SQLStr = 'Mickey Mouse, Goofy, Donald Duck, Pluto, Minnie Mouse'
    
    SELECT
        *
    FROM
        dbo.func_split(@SQLStr, ',')
    

    結果は次のようになります



    1. SCDタイプ6

    2. 数値としてのSQL順序文字列

    3. MySQLステートメント内にPHP変数を含める方法

    4. OracleをAmazonAuroraに接続する