如何在 Oracle APEX 19 中的 Select 列表上设置默认值?

How to Set Default Value on a Select List in Oracle APEX 19?

我有一个select列表来显示

的国籍列表
SELECT DESCRIPTION d, NATIONALITY_ID r FROM NATIONALITY ORDER BY DESCRIPTION;

这会按字母顺序返回我的列表,这很好。我现在希望默认值为“British”,因为这将是这种情况下最常用的一种。但是,即使将“显示空值”设置为“否”,并且在尝试将默认值设置为静态并将其设置为“英国”后,它也不起作用,我也尝试将默认值设置为“SQL查询”该查询是

SELECT DESCRIPTION FROM NATIONALITY WHERE DESCRIPTION = ‘British’

我尝试的所有方法都不起作用,它将继续显示列表中的第一个 select离子。

select列表项的值为return值,不是显示值。

假设您有一个关于用户 table 的表单。页面项目之一将是“国籍”。在用户 table 中,您将有一列 nationality_id,其中包含指向国籍 table 的外键。页面项目 P1_NATIONALITY 将包含存储在用户 table 中的值 - 即 nationality_id.

要设置默认值,您可以像这样使用“SQL 查询”:

SELECT NATIONALITY_ID FROM NATIONALITY WHERE DESCRIPTION = ‘British’

修改ORDER BY子句:

SQL> with nationality (description, nationality_id) as
  2    (select 'Austrian', 1 from dual union all
  3     select 'Croatian', 2 from dual union all
  4     select 'British' , 3 from dual union all
  5     select 'French'  , 4 from dual
  6    )
  7  select description d, nationality_id r
  8  from nationality
  9  order by case when description = 'British' then 1
 10           end,
 11           description;

D                 R
-------- ----------
British           3
Austrian          1
Croatian          2
French            4

SQL>