#sql #oracle #oracle11g
#sql #Oracle #oracle11g
Вопрос:
Как мне получить имя столбца в качестве 1-й строки результирующего набора.Я пробовал ниже, но получаю ошибку, как показано ниже
select 'First Name', 'Last Name', 'Middle Name', 'Term Number', 'BID', 'BTitle', 'SubB Name', 'LNum' from dual
UNION
select
pa.first_name as first_name,
pa.last_name as last_name,
pa.MIDDLE_INITIAL as middle_name,
bi.bi_num as num,
bi.b_id as bId,
b.name as b_title,
bi.sub_board_name as sub_b_name,
pa.L_NUMBER as lNum
from
M_INFO pa,
B_INV bi,
Blot b,
users u,
roles r
where
bi.assigned_to = u.bi_num( )
and bi.bi_num = pa.bi_num( )
and u.role_id = r.id( )
and bi.b_id = b.id
and bi.delete_dt is null
and bi.delete_by is null
and bi.ARCHIVED_DT is null
and bi.b_id = '40' and bi.sub_b_name = 'TEST';
ORA-01790: expression must have same datatype as corresponding expression
01790. 00000 - "expression must have same datatype as corresponding expression"
*Cause:
*Action:
Error at Line: 1 Column: 50
Комментарии:
1. Сообщение об ошибке сообщает вам. Значения данного столбца должны иметь согласованный тип данных, поэтому вы можете поместить строку (заголовок) «поверх» числового столбца. Это звучит как проблема X / Y.
2. Вы не можете этого сделать, потому что все ваши имена столбцов являются строками, а не все ваши столбцы данных являются строками. Почему вы все равно хотите это сделать? Просто присвоите своим столбцам нужные имена и забудьте об объединении.
3. @Isaac причина, по которой мне нужно, в том, что я хотел бы взять этот результирующий набор и экспортировать его в Excel с именем столбца.
4. Не ожидайте
'First Name', 'Last Name',
, что etc будет отображаться в качестве первой строки.
Ответ №1:
Я бы рекомендовал внести два изменения в ваш запрос.
- Изменить
UNION
наUNION ALL
. Таким образом, ваше объединение не будет искать дубликаты между двумя частями объединения. - Поскольку первая часть вашего объединения — это все строки, вторая часть вашего объединения также должна возвращать все строки. Все столбцы во второй части вашего объединения, которые являются числами, должны быть преобразованы в строку. Пример: изменить
bi.bi_num
наTO_CHAR(bi.bi_num)
Комментарии:
1. Кроме того, я предполагаю, что OP хочет
'First Name', 'Last Name', ...
использовать первую строку результирующего набора.