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

FOR XML PATH と文字列連結

    あなたの最初の試みはほとんどそこにあると思います。私は常に同じ FOR XML アプローチを使用して、この種のことを行っています。以下の解決策は、あなたの正確な例を解決し、他の目的に簡単に適応させることができます:

    DECLARE @delimiter NVARCHAR(10)
    SET @delimiter = ', '
    
    declare @values TABLE (
        [value] NVARCHAR(25)
    )
    
    declare @otherValues TABLE (
        [otherValue] NVARCHAR(25)
    )
    
    INSERT INTO @values VALUES ('Value1')
    INSERT INTO @values VALUES ('Value2')
    INSERT INTO @values VALUES ('Value3')
    
    INSERT INTO @otherValues VALUES ('OtherValue1')
    INSERT INTO @otherValues VALUES ('OtherValue2')
    INSERT INTO @otherValues VALUES ('OtherValue3')
    
    SELECT
        STUFF(
            (
                SELECT
                    @delimiter + CAST([value] AS NVARCHAR(500)) + '' AS [text()]
                FROM
                    @values
                FOR   
                    XML PATH('')
            ),
            1,
            LEN(REVERSE(@delimiter)), -- Reverse the delimiter string in case it has trailing spaces; LEN() won't count those
            ''
        ) +
        ' text in between my values ' +
        STUFF(
            (
                SELECT
                    @delimiter + CAST([otherValue] AS NVARCHAR(500)) + '' AS [text()]
                FROM
                    @otherValues
                FOR   
                    XML PATH('')
            ),
            1,
            LEN(REVERSE(@delimiter)), -- Reverse the delimiter string in case it has trailing spaces; LEN() won't count those
            ''
        )
    


    1. JAVAMySQL接続ClassNotFound例外

    2. SQLエラー:ORA-00942テーブルまたはビューが存在しません

    3. RubyonRails用のUbuntuへのPostgreSQLのインストール

    4. SQL Server Management Studio のインストール後、サービス リストで SQL Server サービスを使用できない