Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

cập nhật nhiều cột bằng cách sử dụng câu lệnh trường hợp trong máy chủ sql

Bạn sẽ phải hoán đổi cú pháp xung quanh. Câu lệnh trường hợp sẽ được áp dụng cho mọi giá trị bạn muốn cập nhật ...

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

Có vẻ như bạn thực sự muốn câu lệnh 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

Hy vọng điều đó sẽ giúp



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tại sao tôi không thể thực hiện một hàm tổng hợp trên một biểu thức có chứa một tổng thể nhưng tôi có thể làm như vậy bằng cách tạo một câu lệnh select mới xung quanh nó?

  2. Tôi có nên lập chỉ mục một trường bit trong SQL Server không?

  3. SQL Server, kết hợp LIKE và IN?

  4. So sánh chuỗi không thành công với biến varchar

  5. Khóa ngoại có thể là NULL và / hoặc trùng lặp không?