8

Có ai có thể giúp tôi bằng cách viết báo cáo trường hợp trong Informatica PowerCenter Designer không? Tôi khá mới mẻ với Informatica, và dựa trên kinh nghiệm hạn chế của tôi, tôi cảm thấy những tuyên bố tình huống không được hỗ trợ. Có một chức năng giải mã với chức năng tương tự, nhưng tôi không thể tìm thấy bất kỳ ví dụ tốt nào về cú pháp.Báo cáo trường hợp/Chức năng giải mã trong Informatica

Tôi thực sự đánh giá cao nếu có ai có thể cho tôi một số ví dụ cụ thể về cách sử dụng chức năng báo cáo/giải mã trường hợp trong Informatica.

Cảm ơn bạn đã giúp đỡ!

Trả lời

15

Bạn nói đúng - không có tuyên bố CASE, nhưng bạn có thể sử dụng DECODE để mô phỏng nó:

DECODE(TRUE 
     , DECIMAL_PORT > 0, 'positive value' 
     , DECIMAL_PORT < 0, 'negative value' 
         , 'zero') 

Nó là một tương đương của Transact-SQL CASE tuyên bố sau:

CASE 
    WHEN DECIMAL_PORT > 0 THEN 'positive value' 
    WHEN DECIMAL_PORT < 0 THEN 'negative value' 
    ELSE 'zero' 
END 

Đây là cách hoạt động:

  • thông số thứ nhất là mã cứng d TRUE giá trị,
  • thậm chí thông số (2, 4 và vân vân) là điều kiện,
  • thông số lẻ (3, 5 và vân vân) là trở lại giá trị,
  • tham số cuối cùng là Giá trị trả về mặc định,
  • điều kiện đầu tiên đánh giá giá trị của tham số thứ nhất (ví dụ: điều kiện đầu tiên đúng) xác định giá trị được trả về,
  • nếu không có điều kiện nào được đáp ứng thì thông số cuối cùng được trả về.
3

Nhìn cũng tại IIF() chức năng mà thường được sử dụng để thực hiện logic có điều kiện:

IIF(DECIMAL_PORT > 0, 'positive value', IIF(DECIMAL_PORT < 0 ,'negative value', 'zero')) 
+2

này sẽ làm việc nhưng nó cũng sẽ nhận được lộn xộn một cách nhanh chóng như số lượng các điều kiện phát triển. 'DECODE' cho phép viết các biểu thức dễ đọc hơn. –