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

चाइल्ड एलिमेंट के अधिकतम मान के आधार पर SQL सर्वर में XML नोड चुनें

इसके बारे में कैसे:

SELECT 
    TOP 1
    XMLCOL.value('(/user/name)[1]', 'nvarchar(20)') as 'UserName',
    Usr.Token.value('(id)[1]', 'nvarchar(20)') AS 'ID',
    Usr.Token.value('(endDate)[1]', 'DateTime') as 'EndDate'
FROM 
    dbo.MyTable
CROSS APPLY
    xmlcol.nodes('/user/token') AS Usr(Token)
ORDER BY
    Usr.Token.value('(endDate)[1]', 'DateTime') DESC

आप मूल रूप से एक्सएमएल से सीधे 'उपयोगकर्ता नाम' जैसे "परमाणु" भाग लेते हैं, और फिर / उपयोगकर्ता / टोकन की एक सूची लागू करते हैं और अपनी इच्छित व्यक्तिगत बिट्स निकालते हैं - आपको तीन कॉलम (उपयोगकर्ता नाम, आईडी, एंडडेट) का परिणाम सेट मिलता है ) और आप उन्हें ऑर्डर और फ़िल्टर कर सकते हैं।

साइड नोट:इसके बजाय:

XMLCOL.query('user/name').value('.','NVARCHAR(20)') 

आप इसका उपयोग क्यों नहीं करते - बहुत आसान लगता है!

XMLCOL.value('(/user/name)[1]', 'NVARCHAR(20)') 



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसक्यूएल में साल के लिए टेबल पिवट कैसे करें?

  2. एमएस एसक्यूएल डाटाबेस से एक्सएमएल स्कीमा प्राप्त करना

  3. एसक्यूएल सर्वर क्वेरी में यूनियन सभी बनाम या स्थिति

  4. SQL सर्वर (T-SQL) में जर्मन प्रारूप में दिनांक कैसे प्रदर्शित करें

  5. एक पता डेटाबेस बनाना