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

SQL कॉलम में सीमांकित मानों को कई पंक्तियों में विभाजित करना जो कई सीमांकक का उपयोग करते हैं

इसे आजमाएं:

यहां

;with T(id, Cols) as
(
  select 1, '10 x 1234 description1,11 x 456 description2' 
  UNION ALL
  select 2, '40 x 123478 description3,51 x 45678 description4' 
),
--first split all comma separated into different rows
CTE2 AS 
(
    SELECT id, 
    CAST(N'<H><r>' + replace(Replace(Vals.a.value('.', 'NVARCHAR(50)'),
        ' ','|'), '|', '</r><r>') + '</r></H>' as XML) Cols
    FROM
    (
    SELECT *,CAST (N'<H><r>' + Replace(cols,',','</r><r>') + 
        '</r></H>' AS XML) AS [vals]
    FROM T) d
    CROSS APPLY d.[vals].nodes('/H/r') Vals(a)
)
-- split all ' ' demilited values now
SELECT distinct id, Vals.a.value('(/H/r)[1]', 'VARCHAR(100)') AS Qty,
Vals.a.value('(/H/r)[2]', 'VARCHAR(100)') AS X,
Vals.a.value('(/H/r)[3]', 'VARCHAR(100)') AS ItemNo,
Vals.a.value('(/H/r)[4]', 'VARCHAR(100)') AS Description
FROM
(
SELECT *
FROM CTE2) d
CROSS APPLY d.[cols].nodes('/H/r') Vals(a)


  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 सर्वर के लिए कनेक्शन टाइमआउट

  2. एक्सेस में UNPIVOT का अनुकरण कैसे करें?

  3. ट्री टेबल के लिए Sql क्वेरी

  4. SQL सर्वर में VARCHAR/CHAR के बजाय हमें NVARCHAR/NCHAR का उपयोग कब करना चाहिए?

  5. SQL सर्वर में संग्रहीत प्रक्रिया में पास किए गए VARCHAR को कैसे पार्स करें?