У меня есть следующие имена таблиц ETEST с col1 и col2 как имена столбцов.преобразование столбца в строку
col1 col2
==== ====
eid 101
name abc
age 30
eid 102
name xyz
age 40
Значение Иды, имя и может повторяться, я хочу написать запрос SQL, чтобы отобразить данные, как показано ниже:
eid name age
101 abc 30
102 xyz 40
Я пытался что-то вроде ниже, но это не работает для всех записей ,
SELECT MAX(DECODE(a.col1,'eid',a.col2)) eid,
MAX(DECODE(a.col1,'name',a.col2)) name ,
MAX(DECODE(a.col1,'age',a.col2)) age
FROM
(SELECT rownum,
last_value(col1 ignore nulls) over (order by rownum) col1,
last_value(col2 ignore nulls) over (order by rownum) col2
FROM etest
ORDER BY rownum
)a;
Пожалуйста, обратите внимание, что может быть п число записей для Ид, имя и возраст в col1 из приведенной выше таблицы.
Пожалуйста, помогите. С уважением, MKS
Ваша структура базы данных не имеет смысла, как мы можем знать, что «xyz» относится к «102», а не «101»? На этой таблице должен быть другой столбец. – davegreen100
Как я упоминал ранее, соответствующие значения для eid, имени и возраста должны быть выбраны с помощью запроса sql. – MKS
извините, все еще не понимаю, что логика говорит, что «xyz» должен показать «101»?, Это чисто порядок строк в таблице? если это так, то вы находитесь в куче неприятностей. – davegreen100