2016-01-03 2 views
-2

Followinq запрос возможен в оракулаИспользование различны для конкретного столбца в оракула

select DISTINCT(COLA), COLB 
from TABLEA 

В этом запросе

  1. Будет ли этот запрос возвращает различные значения для комбинации COLA и COLB?
  2. Если этот запрос возвращает отдельное значение только для COLA, то каково должно быть значение COLB для выбранного COLA?
  3. Или если у нас есть несколько записей с одинаковым значением COLA, будет ли этот запрос вызывать ошибку?
+3

'distinct' это *** НЕ *** функция. Он всегда применяется к ** всем ** столбцам списка выбора. write 'distinct (cola), colb' ** точно ** то же, что и' distinct cola, colb' (круглые скобки полностью бесполезны). Подробности приведены в руководстве: https://docs.oracle.com/database/121/SQLRF/statements_10002.htm#SQLRF55272 –

ответ

1

В вашем примере запрос возвращает различные значения для комбинации COLA и COLB.

Проверьте синтаксис: enter image description here

Обратите внимание, что DISTINCT/UNIQUE/ALL может быть размещен только после того, как SELECT, и до первого выражения в списке выбора.

В документации сказано, что:
https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_10002.htm

DISTINCT | UNIQUE

Укажите DISTINCT или UNIQUE, если вы хотите, чтобы база данных возвращала только одну копию каждого набора повторяющихся строк. Эти два ключевых слова: синонимы. Дублирующимися строками являются те, которые соответствуют значениям для каждого выражения в списке выбора.

ВСЕ

Укажите ALL, если вы хотите, чтобы база данных, чтобы вернуть все строки выбраны, включая все копии дубликатов. По умолчанию используется ALL.

Вышеуказанные средства, что DISTINCT/UNIQUE всегда применяется ко всему списку выбора, а не отдельные столбцы

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