powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как лучше?
17 сообщений из 67, страница 3 из 3
Как лучше?
    #39488439
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Abrazivнеправильно написал, надо
SELECT * FROM table1, table2 WHERE table1.a = table2.a AND (table2.a <> NULL)
...
Ну и что?
Код: sql
1.
SELECT * FROM table1, table2 WHERE table1.a = table2.a AND (table2.a <> NULL)


- это то же самое, что и
Код: sql
1.
SELECT * FROM table1, table2 WHERE table1.a = table2.a
...
Рейтинг: 0 / 0
Как лучше?
    #39488440
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий13.07.2017 14:19, Abraziv пишет:
> Если ли возможность в SQL interbase выполнять сравнение полей в WHERE если поля не нулевые (IS NOT NULL???) без AND ???

если хотя бы одно из полей (или оба сразу) NULL, то результат сравнения будет FALSE

Мне уже кажется, что "они сами не знают, что они хочут"...
...
Рейтинг: 0 / 0
Как лучше?
    #39488444
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
13.07.2017 14:48, чччД пишет:
> Мне уже кажется, что "они сами не знают, что они хочут"...

+1
или не могут изъяснить свои желанья
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как лучше?
    #39488445
Abraziv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
согласен!!!
но, нужно несколько условий
SELECT * FROM table1, table2 WHERE (table1.a = table2.a AND (table2.a <> NULL)) OR (table1.b = table2.b AND (table2.b <> NULL)) OR (table1.c = table2.c AND (table2.c <> NULL))

и нужно понимать, что table1.a table1.b table1.c также может быть NULL, а NULL = NULL равно TRUE
...
Рейтинг: 0 / 0
Как лучше?
    #39488449
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Abrazivи нужно понимать
это....

SELECT * FROM table1, table2 WHERE (table1.a = table2.a)
это неявный join, которому соответствует inner join, поэтому в результат не попадают ни table1.a is null, ни table2.a is null.
Abraziv а NULL = NULL равно TRUE
ШТО? :-)
null <> null, по определению.
...
Рейтинг: 0 / 0
Как лучше?
    #39488450
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
13.07.2017 14:50, Abraziv пишет:
> и нужно понимать, что table1.a table1.b table1.c также может быть NULL,
> а NULL = NULL равно TRUE

а в ухо?! (С)

сравнение NULL-а с чем угодно, в том числе с другим NULL-ом всегда даёт FALSE
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как лучше?
    #39488453
Abraziv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тогда вопрос исчерпан.
...
Рейтинг: 0 / 0
Как лучше?
    #39488458
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для разных случаев есть разные операторы.

"=" "!=" "is not distinct from" "is distinct from" разные и дают разный результат на выходе при одинаковых входных данных.
...
Рейтинг: 0 / 0
Как лучше?
    #39488460
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevsky,

нету в IB is [not] distinct from, поэтому автору придётся кушать кактус
...
Рейтинг: 0 / 0
Как лучше?
    #39488461
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, еще можно применить coalesce(table1.b, -1) "-1" выбрано из предположения, что соединение идет по положительным значениям и отрицательных нет по административным соображениям.
...
Рейтинг: 0 / 0
Как лучше?
    #39488463
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисавтору придётся кушать кактусну да, ну да... из некоторых кактусов, говорят, неплохая самогонка выходит.

а коалески тоже нэма?
...
Рейтинг: 0 / 0
Как лучше?
    #39488467
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevsky,

вроде появилась
...
Рейтинг: 0 / 0
Как лучше?
    #39488493
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Abraziv,

Инструменты найдутся всегда.
Главное - понять, что же тебе надо.
Поскольку пока что все твои примеры ничего не объясняют.

Если table1.a = table2.a, то в каком случае запись не должна попадать в выборку?
По NULL'ам она и так не соединится, ничего тут дополнительно сравнивать не надо.
...
Рейтинг: 0 / 0
Как лучше?
    #39491392
Abraziv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть две таблицы. Нужно сравнить есть ли совпадения записей с указанными полями в этих таблицах, если есть, то сделать пометку в поле таблицы 1 значением из поля таблицы 2. В результате сравнения в таблице 1 может быть найдено несколько совпадений для одной записи из таблицы 2.
Моё решение: хранимая процедура с двумя FOR.
Что тут не понятно? Я же 300 раз писал уже.
...
Рейтинг: 0 / 0
Как лучше?
    #39491402
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Abraziv,

Тебя совсем о другом спрашивали.
Входное условие, что отношение по записям Т1:Т2 как N:1, ты только сейчас ввёл, и утверждаешь, что это очевидно.

Даже продолжать не хочу, решил так решил.
...
Рейтинг: 0 / 0
Как лучше?
    #39491405
Abraziv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть ли более лучшее решение?
...
Рейтинг: 0 / 0
Как лучше?
    #39491540
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Abraziv,

Более лучшее решение есть всегда.
Но поскольку здесь после 300 объяснений никто не понял, то на этом можно остановиться.
...
Рейтинг: 0 / 0
17 сообщений из 67, страница 3 из 3
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как лучше?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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