我的页面上有一个报告区域,它正在从students
表格中获取数据。在该表中,有一个名为cv_lodged
1 或 0 的列表示是或否。在报告中,它将此列数据显示为 0 或 1,我想将其更改为显示是或否。
我怎样才能做到这一点?
我的页面上有一个报告区域,它正在从students
表格中获取数据。在该表中,有一个名为cv_lodged
1 或 0 的列表示是或否。在报告中,它将此列数据显示为 0 或 1,我想将其更改为显示是或否。
我怎样才能做到这一点?
您可以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
目前,有一种更简单的方法可以做到这一点。
首先以开发者身份打开带有“Yes/No”项的APEX页面,点击该项,打开页面项设置。
将设置值从更改Use component settings
为Custom
。
然后更改Yes Value
to1
和No Value
to 0
。
该解决方案有一些优点:
select decode(mycolumn, 1, 'Y', 'N') from mytable where id = 123;
) 或select case when ...
我通常只是在名为 YES1_NO0 的共享组件中创建了一个静态 LOV,其中包含 2 个条目:“是”-> 1、“否”-> 0。
然后在交互式报表中,您可以更改这些列。为此,请编辑 IR 列。将“显示类型”更改为“显示为文本(基于 LOV,转义特殊字符)”。然后在“值列表”下将“列过滤器类型”设置为“使用命名的值列表过滤精确匹配”并选择命名的 LOV。
但可以肯定的是,您完全可以在 SQL 中做到这一点。