Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

FOR XML PATH và nối chuỗi

Tôi nghĩ rằng nỗ lực ban đầu của bạn gần như hoàn thành. Tôi làm kiểu này mọi lúc bằng cách sử dụng cùng một phương pháp FOR XML. Giải pháp dưới đây giải quyết ví dụ chính xác của bạn và có thể dễ dàng điều chỉnh cho các mục đích khác:

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. Cách di chuyển tệp dữ liệu trong SQL Server - Phần 1

  2. Các tính năng hàng đầu cần tìm trong Công cụ giám sát máy chủ SQL

  3. Các thay đổi cột chỉ siêu dữ liệu mới trong SQL Server 2016

  4. SQL Server:TẠO LẮP RÁP cho lắp ráp 'Kiểm tra' không thành công vì lắp ráp 'Kiểm tra' không đúng định dạng hoặc không phải là một lắp ráp .NET thuần túy.

  5. 3 cách để có được ngày đầu tiên của tháng trong SQL Server