powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как интерпретирует Oracle отрицательную конструкцию?
9 сообщений из 9, страница 1 из 1
Как интерпретирует Oracle отрицательную конструкцию?
    #39557660
sossisson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что-то не могу врубиться
есть условие (a=1 or b=1 or c=1) и понятно что будет выбрано.
А вот если написать not (a=1 or b=1 or c=1) как будет интерпретирован oracle? Запрос исполняется, но что подсчитано не понятно.
...
Рейтинг: 0 / 0
Как интерпретирует Oracle отрицательную конструкцию?
    #39557662
Фотография AlexFF__|
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sossissonЧто-то не могу врубиться
есть условие (a=1 or b=1 or c=1) и понятно что будет выбрано.
А вот если написать not (a=1 or b=1 or c=1) как будет интерпретирован oracle? Запрос исполняется, но что подсчитано не понятно.
Судя по всему, тебя NULL в ступор вогнали
...
Рейтинг: 0 / 0
Как интерпретирует Oracle отрицательную конструкцию?
    #39557666
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sossissonкак будет интерпретирован oracle?
В лоб. Не выполняется ни одно из =1. Фактически, превратится в a!=1 and b!=1 and c!=1

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
with t as (
  select 0 a, 0 b, 0 c from dual union all
  select 0 a, 0 b, 1 c from dual union all
  select 0 a, 1 b, 0 c from dual union all
  select 0 a, 1 b, 1 c from dual union all
  select 1 a, 0 b, 0 c from dual union all
  select 1 a, 0 b, 1 c from dual union all
  select 1 a, 1 b, 0 c from dual union all
  select 1 a, 1 b, 1 c from dual union all
  select 1 a, 1 b, null c from dual
)
select *
from t 
where 
  not (a=1 or b=1 or c=1)
--  a=1 or b=1 or c=1
--  a!=1 and b!=1 and c!=1
...
Рейтинг: 0 / 0
Как интерпретирует Oracle отрицательную конструкцию?
    #39557670
MazoHist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
not (a or/and b) = not a and/or not b

гуглить правило Де-Моргана

для трех операндов нужно привести к двум

not (a=1 or b=1 or c=1) = not ((a=1 or b=1) or c=1) = not (a=1 or b=1) and c <> 1 = a<>1 and b<>1 and c<>1
...
Рейтинг: 0 / 0
Как интерпретирует Oracle отрицательную конструкцию?
    #39557674
sossisson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlexFF__|,
точно, если использовать nvl для каждого поля то будет отрицание через and
...
Рейтинг: 0 / 0
Как интерпретирует Oracle отрицательную конструкцию?
    #39557675
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sossisson,

В школе не проходили старого доброго де Моргана ?
...
Рейтинг: 0 / 0
Как интерпретирует Oracle отрицательную конструкцию?
    #39557678
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
википедияИспользуя законы Де Моргана можно выразить конъюнкцию через дизъюнкцию и три отрицания
Совет из серии: как усложнить формулу для диссертации.
...
Рейтинг: 0 / 0
Как интерпретирует Oracle отрицательную конструкцию?
    #39557679
MazoHist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env,
в школе курса дискретной математики нет вроде, я с ним первый раз только в техникуме встретился.
...
Рейтинг: 0 / 0
Как интерпретирует Oracle отрицательную конструкцию?
    #39557699
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
with t as (
select 1 a,1 b,1 c from dual
)
select a from t where 2 not in (a,b,c);
1
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как интерпретирует Oracle отрицательную конструкцию?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]