Pull to refresh
12
0
Гасан Ализаде @hasanfalizada

Инженер-программист

Send message
Доброго времени суток!
Спасибо Вам за комментарий!
Я понял, что Вы имеете ввиду. Правильно: данное выражение сработает и не выдаст ошибочки при компиляции. Но не в этом суть.
А суть п.24 в том, что нельзя использовать HAVING, если не происходит агрегации (т.е. GROUP). Поскольку, вопросы на экзамене, больше приближены к решению поседневных задач, следует настраиваться именно на это.
В тестовых же условиях — ради Бога :) Можете извращаться как угодно :)
В том числе, и выводить количество строк таблицы, «если этих строк больше нуля» :)
«если этих строк больше нуля» — вот чтобы понять каких же именно строк, то их надо сначала сгруппировать по какому-либо признаку, например:

WITH tbl
     AS (SELECT 'критерий1' criteria FROM DUAL
         UNION ALL
         SELECT 'критерий1' criteria FROM DUAL
         UNION ALL
         SELECT 'критерий2' criteria FROM DUAL
         UNION ALL
         SELECT 'критерий2' criteria FROM DUAL
         UNION ALL
         SELECT 'критерий2' criteria FROM DUAL
         UNION ALL
         SELECT 'критерий3' criteria FROM DUAL
         UNION ALL
         SELECT 'критерий3' criteria FROM DUAL
         UNION ALL
         SELECT 'критерий3' criteria FROM DUAL
         UNION ALL
         SELECT 'критерий3' criteria FROM DUAL)
  SELECT criteria, COUNT (*)
    FROM tbl
GROUP BY criteria
  HAVING COUNT (*) > 1


Так что пункт гласит не синтаксическое правило. А логическое.
В любом случае, еще раз спасибо за реакцию!
Добрый день. Да ну) Рабочий значит запрос) Ну тогда покажите, пожалуйста, как Вы в ORACLE DB таким запросом извлечете данные из реального столбца? Или хотя бы, попробуйте, прокрутить вот этот запрос:
select dummy
from dual
having count(*)>1
Добрый день. Нет. Синтаксис второй команды некорректен. Нужно вот так:

alter table sample modify b not null;

И только так.
Спасибо еще раз) Я знаю что есть NULL. Скажем так: WHERE не сработает (я просто не знаю, что конкретно вернет сам WHERE NULL или FALSE — после того как NOT IN вернет NULL или FALSE), и весь запрос ничего не вернет. Хм?
Данный экзамен можно сдавать отдельно. Он особняком. Он линейки Expert. Что касается другой профессиональной линейки, то тут уж все зависит, на что направление взяли. Скажите, конкретно, куда метите, я скажу.
Доброго времени суток. Правильно. Я подразумевал, что FALSE вернет все WHERE-условие. Поправил.
Так) Ну вот) Вы же используете connect. Наверное, надо было бы написать start with или connect. Так было бы корректнее.
1. PL/SQL не рассматривается на экзамене.

2. Я не встречал никогда данную функцию. Она built-in? Может устаревшая? В референсе тоже о ней ничего не сказано. Если есть информация, то скиньте линк, пожалуйста.

3. Иcпользуйте listagg.

4. Должен с Вами согласиться (из документации):

Many (but not all) aggregate functions that take a single argument accept these clauses:

DISTINCT and UNIQUE, which are synonymous, cause an aggregate function to consider only distinct values of the argument expression. The syntax diagrams for aggregate functions in this chapter use the keyword DISTINCT for simplicity.

ALL causes an aggregate function to consider all values, including all duplicates.
Нет. Конечно можно. Просто есть два метода создания и модификации constraint-ов: inline и outline. Ну так вот, NOT NULL — может быть создани модифицирован только inline методом.
Доброго времени суток. Ну… как сказать) Тут дело в терминологии. Экзамен так требует. В рамках экзамена — если речь идет о «Hierarchical query», то наличие start with и connect обязательно. Ну а в жизни, разумеется, все по разному можно представить и интерпретировать)

Information

Rating
Does not participate
Location
Баку, Азербайджан, Азербайджан
Date of birth
Registered
Activity