-1

我想知道我是否可以有一个查询,它给我一个列的值,包括该列的默认值。可行吗?

我不想使用联合或加入。

例如,我有一个表 EMP 作为

CREATE TABLE EMP
 (EMP_NAME VARCHAR2(20) DEFAULT 'XXX');

INSERT INTO EMP(EMP_NAME) VALUES('A');
INSERT INTO EMP(EMP_NAME) VALUES('B');

当我用类似的东西查询时

SELECT EMP_NAME FROM EMP;

我希望结果为

A
B
XXX

业务逻辑:表 EMP 是包含所有员工列表的主表。在我有组织化任务的 UI 屏幕中,例如:ORG_TASK 我有一个包含两列的 UI 屏幕,TASK_NAME、ASSINGED_EMPLOYEE 和 ASSINED_EMPLOYEE 列由于各种其他原因不能为空。

因此,当我想创建一个新任务时,我只需在另一列中输入任务及其描述,并且需要从 ASSINED_EMPLOYEE 列的下拉列表中选择员工。

如果在该时间点无法将任务分配给任何员工,我们希望下拉菜单也具有称为 TBD 的默认值。

下拉列表的来源是从 EMP 表中选择员工姓名的查询。我们想将 TBD 附加到下拉列表中的值

4

1 回答 1

2

仅使用简单的选择语句是不可能的。您只能获取表中存在的记录。

您正在寻找类似的东西:

SELECT EMP_NAME FROM EMP
union all
select DATA_DEFAULT from ALL_TAB_COLUMNS 
where TABLE_NAME = 'EMP'
and COLUMN_NAME = 'EMP_NAME';

但是你必须找到将longtype 转换为varchar.

不是我想的那么简单。我认为在 SO 上提出新问题是个好问题。

于 2013-07-11T07:02:17.743 回答