Выберите регистр Oracle Missing Expression или Missing Keyword

Я пытаюсь использовать выражение CASE с SELECT с разработчиком Oracle SQL, и что бы я ни делал, я получаю ошибку. В приведенном ниже заявлении у меня отсутствует выражение. Я проверил и думаю, что есть все необходимые ключевые слова. Я пробовал модифицировать код разными способами, и единственное, что иногда случается, - иногда я получаю

"missing keyword error".

SELECT 
      CASE WHEN A.PARENT_ID IS NULL THEN 'NOPROB'
                                    ELSE 'PROB'
      END AS 'PROBLEMS'
FROM A

Имя таблицы A?

CannedMoose 13.04.2018 10:29

Удалите апостроф вокруг ПРОБЛЕМ или замените его кавычками.

Vasyl Moskalov 13.04.2018 10:32

Нет, я его поменял, потому что он назван в честь человека!

Lay 13.04.2018 10:32

Одиночные кавычки предназначены для строковых литералов. Используйте двойные кавычки для идентификаторов с разделителями.

jarlh 13.04.2018 10:41
"ошибка отсутствующего ключевого слова" не является сообщением об ошибке Oracle. Вероятно, у вас есть ORA-00923: ключевое слово FROM не найдено там, где ожидалось.
William Robertson 13.04.2018 10:46

@jarlh Затем я получаю недопустимый идентификатор (ORA-00904: недопустимый идентификатор)

Lay 13.04.2018 10:48

@WilliamRobertson Да, этот и еще несколько, не говоря уже об от

Lay 13.04.2018 10:48

Я попробовал выполнить запрос, как указано выше, и получил только ORA-00923, больше ничего.

William Robertson 13.04.2018 10:52

Одиночные кавычки предназначены для символьных значений, а не для идентификаторов.

a_horse_with_no_name 13.04.2018 13:43
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
9
105
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Попробуйте этот ответ

SELECT 
      CASE WHEN PARENT_ID IS NULL THEN 'NOPROB'
                                    ELSE 'PROB'
      END AS PROBLEMS
FROM A

Элементы списка select не нужно заключать в квадратные скобки.

William Robertson 13.04.2018 10:43

Спасибо, я попробовал, но это не помогает ... ORA-00904: недопустимый идентификатор - 00904. 00000 - «% s: недопустимый идентификатор»

Lay 13.04.2018 10:49

Итак, есть ли столбец PARENT_ID в таблице A? Мы знаем только то, что вы нам рассказываете (а теперь выясняется, что это было не совсем так).

Littlefoot 13.04.2018 12:36

При присвоении псевдонима имени таблицы используются двойные кавычки, а не одиночные кавычки

SELECT 
     CASE WHEN A.PARENT_ID IS NULL THEN 'NOPROB'
                                   ELSE 'PROB'
     END AS "PROBLEMS"
FROM A

Только если идентификатор, который вы хотите использовать, является зарезервированным словом или нестандартным иным образом. Поскольку обычно использовать зарезервированные слова или нестандартные имена идентификаторов - плохая идея, лучше избегать использования двойных кавычек.

William Robertson 13.04.2018 10:50

Другие вопросы по теме