Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

aktualizowanie wielu kolumn za pomocą instrukcji case na serwerze sql

Będziesz musiał zamienić składnię. Oświadczenie case zostanie zastosowane do każdej wartości, którą chcesz zaktualizować...

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

Wygląda na to, że faktycznie chcesz mieć instrukcję 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

Mam nadzieję, że to pomoże



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dlaczego opcja indeksowania pełnotekstowego jest wyszarzona?

  2. SELECT filtrowanie wyciągów według pory dnia

  3. Jak przechowywać dane w wierszu w SQL Server

  4. Różnica między CTE a SubQuery?

  5. SQL Server:Ciemna strona NVARCHAR