sql >> Database >  >> RDS >> Sqlserver

VOOR XML PATH en tekenreeksaaneenschakeling

Ik denk dat je oorspronkelijke poging er bijna is. Ik doe dit soort dingen de hele tijd met dezelfde FOR XML-aanpak. De onderstaande oplossing lost uw exacte voorbeeld op en kan gemakkelijk worden aangepast voor andere doeleinden:

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. Selecteer Databasedetails en tabelnamen in iSQL plus

  2. OracleParameter en IN-clausule

  3. Kan ik waarden terugsturen naar PHP vanuit een anoniem PL/SQL-blok?

  4. Hoe kan ik de maximale uploadbestandsgrootte van de LOAD DATA INFILE-query vergroten?