Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

एक्सएमएल पथ और स्ट्रिंग संयोजन के लिए

मुझे लगता है कि आपका मूल प्रयास लगभग आ गया है। मैं एक्सएमएल दृष्टिकोण के लिए हर समय इस तरह की चीज करता हूं। नीचे दिया गया समाधान आपके सटीक उदाहरण को हल करता है और इसे अन्य उद्देश्यों के लिए आसानी से अनुकूलित किया जा सकता है:

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. क्या क्वेरी बिल्डर में INSERT स्टेटमेंट का उपयोग करते समय 2 टेबल जोड़ने के तरीके हैं?

  2. SQL सर्वर में APPROX_COUNT_DISTINCT () कैसे काम करता है

  3. एंटिटी फ्रेमवर्क कोड पहले - टेबल कॉलम कोलाज बदलें

  4. Sql प्रबंधन स्टूडियो में नया सर्वर नाम पंजीकृत करें

  5. SQL में एक पंक्ति मान को दूसरे में ले जाएँ