我的页面上有一个报告区域,它从students
表中获取数据。在该表中,有一个名为cv_lodged
的列,它是1或0表示是或否。在报告中,它将此列数据显示为0或1,我想将其更改为显示是或否。
我该怎么做?
答案 0 :(得分:5)
您可以在查询中添加CASE
语句
SELECT (CASE WHEN cv_lodged = 1
THEN 'Yes'
ELSE 'No'
END) cv_lodged,
other_columns
FROM students
如果这可能很常见,那么创建一个将伪布尔数据转换为字符串的函数可能会更好。像
这样的东西CREATE FUNCTION my_bool_to_str( p_num IN NUMBER )
RETURN VARCHAR2
IS
BEGIN
IF( p_num = 1 )
THEN
RETURN 'Yes';
ELSE
RETURN 'No';
END IF;
END;
您将在查询中调用
SELECT my_bool_to_str( cv_lodged ) cv_lodged,
other_columns
FROM students
答案 1 :(得分:0)
我通常只在共享组件中创建一个名为YES1_NO0的静态LOV,其中包含两个条目:'是' - > 1,'不' - > 0
在Interactive Reports中,您可以更改这些列。为此,请编辑IR列。将“显示类型”更改为“显示为文本(基于LOV,转义特殊字符)”。然后在“值列表”下将“列过滤器类型”设置为“使用命名的值列表过滤完全匹配”并选择命名的LOV。
但可以肯定的是,你可以在SQL中完全做到这一点。
答案 2 :(得分:0)
目前,有一种更简单的方法可以做到这一点。
首先使用"是/否"打开APEX页面。作为开发人员的项目,然后单击该项目以打开页面项目设置。
将设置值从Use component settings
更改为Custom
。
然后将Yes Value
更改为1
,将No Value
更改为0
。
这个解决方案有一些优点:
select decode(mycolumn, 1, 'Y', 'N') from mytable where id = 123;
)或select case when ...