2015-02-18 14 views
5

Tôi cần cập nhật cột mới được tạo trong bảng oracle của mình. Để làm như vậy tôi cần phải sử dụng các giá trị hiện có trong hàng để quyết định cách cư cột này, tôi nhận được lỗi:Cập nhật truy vấn nếu câu lệnh cho Oracle

java.lang.NullPointerException -> See Debug Output for details 

Đây là câu hỏi của tôi:

UPDATE 
    SCHEMA_NAME.TABLE_NAME 
SET 
    OCO= IF CO= 'Y' AND COM='Y' THEN 
{ 
    'Y' 
} ELSE 
{ 
    'N' 
} 
END IF; 

Mọi góp ý về cú pháp?

Trả lời

12

Bạn có thể sử dụng biểu tượng CASE trong mệnh đề SET.

Ví dụ,

UPDATE table 
SET schema.column = CASE 
         WHEN CO= 'Y' AND COM='Y' THEN 
          'Y' 
         ELSE 
          'N' 
        END 
+1

Làm việc như một nét duyên dáng, cảm ơn bạn, đánh giá cao nó. –

+1

Bạn được chào đón. Vui lòng đánh dấu câu trả lời nếu nó giúp bạn. –

+0

nếu giá trị của 'CO' hoặc 'COM' đã được cập nhật trong cùng một tuyên bố, khối trường hợp có xem xét giá trị cũ của cột 'CO' và 'COM' hoặc các giá trị được cập nhật không? – gkapagunta

Các vấn đề liên quan