2015-02-24 11 views
0

我有一個(單字符)「Y/N」標誌列的(Oracle 11g)表。爲了簡單起見,假設我們正在討論「Person」表,並且所討論的列是「Gender Indicator」。在不改變數據庫結構的情況下,是否有辦法操縱我的結果集,使我能夠將「男」返回爲「Y」,並且「女」返回爲「N」?我已經查看了SQL translate()和replace()函數,但不知道如何爲多個規則執行此操作,而不必訴諸PLSQL。任何意見,將不勝感激。Jaspersoft域名設計師:確定Y/N應該翻譯爲什麼

如果這不可能通過一個單一的,要求是我在Jasper Reports中生成的域,所以關於如何以這種方式完成的任何建議也會有幫助。

回答

0

SELECT CASE WHEN Gender_Indicator = 'Y' THEN 'Male' ELSE 'Female' END AS Gender_Indicator FROM MyTable;

這會給你你是從什麼我可以告訴在找什麼。

你也可以使用DECODE(Gender_Indicator, 'Y', 'Male', 'N', 'Female')

0

如果你把性別指標作爲Y/N,則可以使用三元如果碧玉報告文本字段表達式內實現自己的目標。

假設您在報表中有一個字段(姑且稱之爲genderIndicator),可容納值Y或N,然後添加一個文本字段下面的表達式:

$F{genderIndicator}.equals("Y") ? "Male" : "Female"