Sqlserver
 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да изтеглите файл, съхранен в SQL DB в двоичен формат

  2. PIVOT в sql 2005

  3. Върнатият тип данни варира в зависимост от данните в таблицата

  4. Промяна на таблица:Как да промените атрибута „Allow Nulls“ от not null на позволяващ null

  5. Как да деактивирате всички ограничения на външния ключ в базата данни на SQL Server - SQL Server / TSQL урок, част 77