Постановка задача:Преобразование сцепленной строки в столбец Имени в Oracle SQL
У меня есть таблица с именем деятельность с всеми столбцами, имеющим тип данных VARCHAR (20) показана ниже:
|ACTIVITY_NAME| Q1 | Q2 | Q3 | Q4 |
|ACT1 |02/05 |05/10 |08/21 |11/15 |
|ACT2 |01/20 |06/11 |08/06 |10/21 |
С этим table, я хочу получить текущий квартал на основе системной даты, чтобы выбрать конкретную строку и преобразовать данные квартала на сегодняшний день. На данный момент у меня есть этот запрос, но ошибка подсказывает, что был найден нечисловой символ, где ожидалось число, которое я действительно знаю.
select to_date(concat('Q', to_char(sysdate, 'Q')), 'MM/DD')
from activities
where activity_name = 'ACT2';
Результат функции concat() - это строка, которая показана ниже, поэтому появляется сообщение об ошибке.
select to_date('Q4', 'MM/DD')
from activities
where activity_name = 'ACT2';
Сейчас я ищу помощи о том, как преобразовать сцепленную строку в имени столбца, чтобы для меня, чтобы извлечь, что конкретные данные о текущем квартале и с удельной активностью.
Ожидаемый результат:
Запрос:
select to_date(Q4, 'MM/DD')
from activities
where activity_name = 'ACT2';
- параметр Q4 внутри функции to_date() в настоящее время рассматривается как имя столбца, а не строки. Как уже упоминалось выше в описании проблемы, как я могу преобразовать этот параметр строки Q4 в имя столбца, чтобы я мог получить результат ниже.
Выход: 08/06/2016
Я новичок в Oracle SQL, и я хотел бы узнать у вас, ребята. Очень ценю вашу помощь. Заранее спасибо.
Спасибо, я получил вашу точку в настоящее время. Но на самом деле у меня есть ошибка в части, которая говорит, что SQL не закончилась должным образом. Незлая помощь. Спасибо. –
В настоящее время я использую oracle 10g. –
Я обновил ответ на примере, как отключить данные в Oracle 10 – krokodilko