Ключевое слово ОТ, а не где ожидать - PullRequest
0 голосов
/ 25 января 2020

Я получаю ошибку ora-00923 в Oracle в этом запросе:

select trans_dt case trans_type="CR" then "Credit" else NULL end as "New" 
  from bank_transaction;

Ответы [ 2 ]

2 голосов
/ 25 января 2020

Два (и две половины) возражения:

  • неверный синтаксис
    • пропущенная запятая между двумя столбцами
    • недействительно case использование
  • строки должны быть заключены в одинарные, а не двойные кавычки
  • однако (это первая часть "половины"), псевдонимы столбцов могут быть заключены в двойные кавычки, как вы это сделали с "New"
  • finally (вторая «половина»), как прокомментировал Гордон, else является избыточным (поскольку возвращает null) и может быть опущено

Итак:

select trans_dt,
       case when trans_type = 'CR' then 'Credit' 
       end as "New" 
FROM bank_transaction;

Например:

SQL> select * From bank_transaction;

TRANS_DT   TR
---------- --
24.01.2020 CR
08.12.2019 XX

SQL> select trans_dt,
  2         case when trans_type = 'CR' then 'Credit'
  3         end as "New"
  4  FROM bank_transaction;

TRANS_DT   New
---------- ------
24.01.2020 Credit
08.12.2019

SQL>
0 голосов
/ 25 января 2020

Сделайте так: посмотрите документацию на случай, когда между полями ставится запятая

select trans_dt, case when trans_type="CR" then "Credit" else NULL end as "New" 
FROM bank_transaction;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...