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

एकाधिक चाइल्ड टेबल पंक्तियों के आधार पर एसक्यूएल अपडेट पेरेंट टेबल फील्ड

update parent
set longtext =
    stuff((
    select ',' + c.char + ': ' + c.val
    from child c
    where c.uid = parent.uid
    for xml path(''), type).value('.','nvarchar(max)'),1,1,'');

मैंने आपके SQLFiddle को अपडेट कर दिया है समाधान के साथ।

  1. STUFF() प्रमुख ',' . को हटाने के लिए कार्य करता है (अल्पविराम) पहली विशेषता से।

  2. XML के लिए किसी क्वेरी परिणाम से XML दस्तावेज़ बनाने के लिए। यह SQL सर्वर के साथ एक प्रसिद्ध चाल है - क्योंकि कॉलम का नाम नहीं है, कोई तत्व उत्पन्न नहीं होता है और केवल कच्चा टेक्स्ट (प्रत्येक पंक्ति का) आउटपुट होता है, एक पंक्ति में एक साथ मैश किया जाता है।

इंटरनेट पर बहुत कम लेख इसे विस्तार से समझाने का प्रयास करते हैं, क्योंकि कोड अपने आप में एक स्पष्टीकरण के रूप में बहुत अधिक बचा है।




  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. जहां क्लॉज IN से पहले और जॉइन या बाद में बेहतर तरीके से निष्पादित होता है

  3. एक तालिका में सभी बाधाओं को छोड़ें

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

  5. SQL में डेटटाइम में समय कैसे जोड़ें