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

SQL सर्वर 2008 एक ही डेटाबेस में दो तालिकाओं की तुलना करता है और कॉलम बदल जाता है

आप LEFT JOIN . का उपयोग करके ऐसा कर सकते हैं :

SELECT  b.Product,
        b.Qty,
        b.Price,
        Result = CASE WHEN a.product IS NULL THEN 'New'
                    ELSE 'Updated: ' + 
                        STUFF(  CASE WHEN a.Qty != b.Qty THEN ',Qty' ELSE '' END + 
                                CASE WHEN a.Price != b.Price THEN ',Price' ELSE '' END,
                            1, 1, '')
                END
FROM    TableB b    
        LEFT JOIN TableA a
            ON a.Product = b.Product
WHERE   a.Product IS NULL
OR      a.Qty != b.Qty
OR      a.Price != b.Price;

SQL Fiddle पर उदाहरण



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मापदंडों के बिना SQL इंजेक्शन से बचना

  2. दो SQL सर्वर डेटाबेस की तुलना करने के लिए एक निःशुल्क टूल क्या है?

  3. SQL - BIGINT को INT . में सुरक्षित रूप से डाउनकास्ट करें

  4. T-SQL का उपयोग करके SQL सर्वर डेटाबेस का नाम कैसे बदलें

  5. फाइलस्ट्रीम का उपयोग करके बड़ी मात्रा में डेटा का प्रबंधन कैसे करें क्योंकि डेटा संग्रहण के लिए केवल स्थानीय पथ समर्थित हैं?