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

एसक्यूएल सर्वर में केस स्टेटमेंट का उपयोग करके एकाधिक कॉलम अपडेट करना

आपको सिंटैक्स को चारों ओर स्वैप करना होगा। केस स्टेटमेंट हर उस मान के लिए लागू किया जाएगा जिसे आप अपडेट करना चाहते हैं...

UPDATE table SET
    pay1 = CASE WHEN @columnname IN('name1') THEN pay1 * 100 ELSE pay1 END,
    pay2 = CASE WHEN @columnname IN('name1', 'name2') THEN pay2 * 20 ELSE pay2 END,
    pay3 = CASE WHEN @columnname IN('name1', 'name2', 'name3') THEN pay3 * 100 ELSE pay3 END

ऐसा लगता है कि आप वास्तव में एक if स्टेटमेंट चाहते हैं....

IF @columnname = 'name1'
    UPDATE table SET pay1 = pay1 * 100, pay2=pay2*20, pay3=pay3* 100

ELSE IF @ColumnName = 'name2'
    UPDATE table SET pay2 = pay2 * 20, pay3 = pay3 * 100

ELSE IF @ColumnName = 'name3'
    UPDATE table SET pay3 = pay3 * 100

आशा है कि यह मदद करता है



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. EF फ़ंक्शन आयात StoredProc द्वारा लौटाए गए स्तंभों को नहीं पहचानता है

  2. SQL सर्वर लॉगिन त्रुटि:उपयोगकर्ता 'NT AUTHORITY\SYSTEM' के लिए लॉगिन विफल

  3. एसक्यूएल एक कॉलम में एकाधिक कॉलम प्राप्त कर रहा है

  4. SQL सर्वर में प्रोग्रामेटिक रूप से अनुक्रमणिका को एक तालिका से दूसरी तालिका में कॉपी करें

  5. एक्सेल फ़ाइल के साथ OPENROWSET