2016-11-23 4 views
0

Я пытаюсь выбрать отдельную колонку из базы данных Oracle, мой код:оракула ошибка SQL: отличный случай

select ID,distinct case when DM='ST1B' then MC else DM end from D_DZDY 

, но это не работы.Ело я удалить «отличными», это работает: enter image description here

Кто-нибудь может помочь мне с этой проблемой? Большое спасибо! : D

+1

Вы используете 'DISTINCT' с неправильно синтаксис. Пожалуйста, дайте некоторые фиктивные данные и каковы ваши ожидаемые результаты. –

+0

Вы ищете 'select different ID, case, когда DM = 'ST1B', затем MC else DM заканчивается с D_DZDY;'? – JSapkota

+0

Какой идентификатор вы ожидаете увидеть, если у вас есть 10 строк с одинаковым значением CASE? –

ответ

0

Синтаксис: select distinct. В одном столбце нет функции или оператора distinct.

Возможно, вы намерены:

select distinct ID, (case when DM = 'ST1B' then MC else DM end) 
from D_DZDY; 

Это будет возвращать различные пары id и выражение case.

+0

Нет необходимости в скобках вокруг CASE –

+0

@DuduMarkovitz. , , Я всегда помещаю «case» в круглые скобки. Мне гораздо легче увидеть, где заканчивается 'case', особенно когда они вложены –

+0

Комментарий для OP/reader. Поскольку это еще одно изменение от OP-кода, важно было уточнить, что это только косметическое изменение. –

0

DISTINCT РАБОТАТЬ НА РЯД, Вы должны использовать этот синтаксис:

select distinct ID,(case when DM='ST1B' then MC else DM end) from D_DZDY 

Если вы хотите Отсрочка значений сазе Вы можете использовать этот

select distinct (case when DM='ST1B' then MC else DM end) from D_DZDY 
+0

Нет необходимости в скобках вокруг CASE –

+0

Нет необходимости в SCREAM НА США. Пожалуйста, исправьте свой ключ-замок, он сломан –

Смежные вопросы