Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

актуализиране на множество колони с помощта на оператор case в sql сървър

Ще трябва да смените синтаксиса. Изявлението case ще бъде приложено за всяка стойност, която искате да актуализирате...

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. DateTime заявка само за година в SQL Server

  2. Напишете число с две десетични знака SQL Server

  3. Създаване на нова база данни от резервно копие на друга база данни на същия сървър?

  4. Външният ключ подобрява ли ефективността на заявката?

  5. изчисляване на среден рейтинг в sql сървър