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

एसक्यूएल सर्वर 2008 में एक एक्सएमएल पूछताछ

आपके नमूना xml में Pages नहीं है नोड. इसका मतलब यह है कि जब FROM क्लॉज की गणना की जाती है, शून्य पंक्तियों की सूची और एक पंक्ति की सूची के बीच एक क्रॉस जॉइन बनता है। परिणामी उत्पाद में कोई पंक्तियाँ नहीं हैं, इसलिए कुछ भी नहीं है SELECT ed, इसलिए कुछ भी नहीं है INSERT एड.

यदि आप वास्तव में BookDetails . में एक पंक्ति सम्मिलित करना चाहते हैं प्रत्येक booksdetail . के लिए आने वाले एक्सएमएल में नोड, आपको कुछ ऐसा करना चाहिए

SELECT 
    ParamValues.PL.value('Pages[1]','int'),
    CAST(ParamValues.PLr.value('Description[1]','varchar(max)') AS text)
FROM 
    @xml.nodes('/booksdetail') as ParamValues(PL)

यानी, आने वाले xml को booksdetail . में श्रेड करें नोड्स, और प्रत्येक .value . को बाहर निकालें s आप इन पंक्तियों से चाहते हैं।




  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. यदि पैरामीटर शून्य है तो SQL WHERE के भाग को अनदेखा करता है

  4. किसी तालिका से कॉलम हेडर के रूप में मानों का चयन करना

  5. सी # डेटाटेबल को असीमित रूप से पॉप्युलेट करें