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

एसक्यूएल:इंडेक्स कॉलम के अनुसार वैल्यू कैसे जोड़ें

यदि हम केवल 1 स्तर के पदानुक्रम को मानते हैं। यदि कई स्तरों का पदानुक्रम है तो यह अधिक दिलचस्प हो जाता है।

SELECT A.Value+coalesce(B.Value,0) as Value
     , A.Position
     , A.Relates_to_Position
     , A.Type
FROM Table A
LEFT JOIN Table B
  on B.Relates_To_Position = A.Position
WHERE A. Relate_to_Position is null

यह जो करता है वह स्वयं शामिल होता है इसलिए यह उसी पंक्ति पर संबंधित रिकॉर्ड रखता है। इसके बाद यह उन सभी रिकॉर्ड्स को संबंधित_to_position में मान के साथ समाप्त कर देता है क्योंकि उन्हें मूल पंक्ति में जोड़ दिया जाएगा।

हम लेफ्ट जॉइन का उपयोग करते हैं क्योंकि सभी रिकॉर्ड्स का संबंधित मूल्य नहीं होगा और हम यह सुनिश्चित करने के लिए कोलेस का उपयोग करते हैं कि नल को जोड़ने का प्रयास नहीं किया गया है। (कोलेस पहला गैर-शून्य मान लेता है)

सुनिश्चित नहीं है कि आपको संबंधित_To_Position की आवश्यकता क्यों है, क्योंकि यह हमेशा शून्य रहेगा ..



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle अद्यतन ट्रिगर के बाद सार्वजनिक डेटाबेस लिंक बना रहा है

  2. क्रिसमस जल्दी आता है (ओरेकल 12.2)

  3. 19 कॉलम को घटाकर 5 कॉलम करें

  4. ओरेकल माइनस कीवर्ड के लिए एएनएसआई एसक्यूएल मानक

  5. Oracle में टाइप 2 SCD को लागू करना