sql >> Databáze >  >> RDS >> Sqlserver

aktualizace více sloupců pomocí příkazu case na serveru SQL

Budete muset změnit syntaxi. Výpis případu bude použit pro každou hodnotu, kterou chcete aktualizovat...

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

Vypadá to, že skutečně chcete, je příkaz 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

Doufám, že to pomůže



  1. Vložte data z db do jiné db

  2. Spočítejte počet maximálních hodnot pro několik dat

  3. Naučte se, jak provést proceduru v Toad For Oracle

  4. Jak mohu zabít všechny relace připojující se k mé databázi Oracle?