#sql #date #oracle11g #case
Вопрос:
Я пытаюсь запустить это в качестве теста для проверки FISCAL_START
диапазона дат.
SELECT FISCAL_START,DESCRIPTION,
(
CASE FISCAL_START
WHEN FISCAL_START = '2014-03-31' THEN DESCRIPTION
WHEN FISCAL_START = '2014-09-29' THEN DESCRIPTION
ELSE 'Test Failed'
END )
FROM GL_PERIOD
продолжайте получать ошибку, в которой отсутствует ключевое слово.
Комментарии:
1. с какой базой данных вы работаете
2. ИЗВИНИТЕ за это … это был Оракул 11
Ответ №1:
Вы перепутали синтаксис case
выражения.
То, что вы хотите, вероятно,:
SELECT FISCAL_START, DESCRIPTION,
CASE WHEN FISCAL_START >= DATE'2014-03-31'
AND FISCAL_START <= DATE'2014-09-29' THEN DESCRIPTION
ELSE 'Test Failed'
END
FROM GL_PERIOD
Который можно упростить следующим образом:
SELECT FISCAL_START, DESCRIPTION,
CASE WHEN FISCAL_START BETWEEN DATE'2014-03-31' AND DATE'2014-09-29' THEN DESCRIPTION
ELSE 'Test Failed'
END
FROM GL_PERIOD
Комментарии:
1. Описание столбца тип данных?
2. Извините, что теперь это работает без правок.
3. Сейчас я пытаюсь добиться того, чтобы использовать имена столбцов FISCAL_START и FISCAL_END следующим образом … Код Psuedo таков : Выберите ОПИСАНИЕ из GL_PERIOD, где Entry_Date ( который находится в представлении под названием РАБОТА и не имеет прямой связи с GL_PERIOD) находится между FISCAL_START и FISCAL_END ( которые находятся в таблице GL_PERIOD)
4. Здесь у вас есть ответ на ваш первоначальный вопрос. Задайте новый вопрос, если хотите получить другой ответ.