2013-07-11 2 views
-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 - это главная таблица со списком всех сотрудников. На экране пользовательского интерфейса, на котором у меня есть моя задача Oraganization EG: ORG_TASK У меня есть экран пользовательского интерфейса с двумя столбцами, столбцы TASK_NAME, ASSINGED_EMPLOYEE и ASSINED_EMPLOYEE не являются NULLABLE по другим причинам.

Итак, когда я хочу создать новую задачу, я просто вводю задачу, ее описание в другой столбец и нужно выбрать сотрудника из раскрывающегося списка в столбце ASSINED_EMPLOYEE.

В случае, если задача не может быть назначена в этот момент для любого из сотрудников, мы хотим, чтобы выпадающее значение также имело значение по умолчанию, называемое TBD.

Источником выпадающего списка является запрос, который выбирает имена сотрудников из таблицы EMP. Мы хотим добавить TBD к значениям в выпадающем списке

+2

Просьба предоставить более подробную информацию. Как выглядит таблица? Укажите несколько строк в таблице. На что вы хотите, чтобы результат выглядел? –

+0

Вы вставили 2 записи, но хотите выбрать 3 записи. Это не разрешено киле. –

+0

Обновлен мой вопрос с примера. Благодарю. – dRv

ответ

2

Невозможно использовать только простой оператор select. Вы можете брать только записи, которые существуют в вашей таблице.

Вы ищете что-то вроде:

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

Но вы должны найти способ преобразования long типа в varchar.

Это не так просто, как я думал. Это хорошая проблема, чтобы задать новый вопрос. Я думаю.

+0

Спасибо @Parado. Тем не менее, я искал альтернативу для объединения – dRv

Смежные вопросы