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

CẬP NHẬT với CASE và IN - Oracle

Bạn đã nói rằng cột ngân sách là chữ và số. Điều đó có nghĩa là nó đang tìm kiếm sự so sánh với các chuỗi. Bạn nên thử đặt các tham số của mình trong dấu ngoặc kép (và bạn đang thiếu chữ THEN cuối cùng trong biểu thức Chữ hoa).

UPDATE tab1   
SET budgpost_gr1=   CASE  
                        WHEN (budgpost in ('1001','1012','50055'))  THEN 'BP_GR_A'   
                        WHEN (budgpost in ('5','10','98','0'))  THEN 'BP_GR_B'  
                        WHEN (budgpost in ('11','876','7976','67465')) THEN 'What?'
                        ELSE 'Missing' 
                        END 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-04091:table [blah] đang đột biến, trình kích hoạt / chức năng có thể không nhìn thấy nó

  2. NLS_CHARSET_DECL_LEN () Hàm trong Oracle

  3. Sự cố đám mây Oracle - Chi phí Lưu trữ Cơ sở dữ liệu trên OCI

  4. Khu vực phục hồi nhanh của Oracle

  5. Chèn / Cập nhật hàng loạt MyBatis cho Oracle