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

'XQuery' SQL का अनुकूलन कैसे करें

यदि आप प्रत्येक पंक्ति में से केवल एक मान चाहते हैं तो cross apply . का उपयोग करने की कोई आवश्यकता नहीं है ।

select XMLCol.value('(/*[local-name()=sql:variable("@Root")]
                      /*[local-name(.)=sql:variable("@Entity")]
                      /*[local-name(.)=sql:variable("@ParentNode")]
                      /*[local-name(.)=sql:variable("@Separator")]
                      /*[local-name(.)=sql:variable("@ChildNode")])[1]', 'varchar(max)')
from XMLTable

इसे प्राप्त करने का दूसरा तरीका FLWOR का उपयोग करना है। . मेरे सीमित परीक्षणों में यह थोड़ा तेज चलेगा।

select XMLCol.value('(for $n1 in /*,
                          $n2 in $n1/*,
                          $n3 in $n2/*,
                          $n4 in $n3/*,
                          $n5 in $n4/*
                      where $n1[local-name(.) = sql:variable("@Root")] and
                            $n2[local-name(.) = sql:variable("@Entity")] and
                            $n3[local-name(.) = sql:variable("@ParentNode")] and
                            $n4[local-name(.) = sql:variable("@Separator")] and
                            $n5[local-name(.) = sql:variable("@ChildNode")]
                      return $n5
                     )[1]', 'varchar(max)')
from XMLTable



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. EPPLUS के साथ सूची से एक्सेल में निर्यात करें

  2. SQL सर्वर में एकाधिक रिक्त स्थान की स्ट्रिंग वापस करने के 3 तरीके

  3. आउटपुट क्लॉज पर फ़िल्टर करें sql

  4. मैं एक होने वाले खंड में कुल के लिए उपनाम का उपयोग क्यों नहीं कर सकता?

  5. SQL में सभी विशेष वर्ण ढूँढें और बदलें