powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / EXCEPT и not in
8 сообщений из 8, страница 1 из 1
EXCEPT и not in
    #39999660
Фотография SlavaKV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго дня.
Невероятно, но факт

select A.ID from dbo.TP A
EXCEPT
select B.id from dbo.TZ B

результат есть, 3 записи из TP которых нет TZ

а вот
select A.ID from dbo.TP A
where A.ID not in (select R.id from dbo.TZ R)
результат ноль записей.
Где собака порылась?
...
Рейтинг: 0 / 0
EXCEPT и not in
    #39999662
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SlavaKV,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
with t1 as 
(
    select
        1 as id,
        2 as num
    union all
    select
        2,
        3
),
t2 as
(
    select
        1 as id,
        2 as num
    union all
    select
        null,
        null
)
select
    *
from 
    t1
except
select
    *
from 
    t2;

...
select
    *
from t1
where 
    t1.id not in 
    (
        select
            t2.id
        from 
            t2
        --where
            --t2.id is not null
    );



Думаем, делаем выводы, читаем доку
...
Рейтинг: 0 / 0
EXCEPT и not in
    #39999670
Фотография SlavaKV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot env#22198961]SlavaKV,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
with t1 as 
(
    select
        1 as id,
        2 as num
    union all
    select
        2,
        3
),
t2 as
(
    select
        1 as id,
        2 as num
    union all
    select
        null,
        null
)
select
    *
from 
    t1
except
select
    *
from 
    t2;

...
select
    *
from t1
where 
    t1.id not in 
    (
        select
            t2.id
        from 
            t2
        --where
            --t2.id is not null
    );

мдяяяя, данные в жо......, в общем намек понял, не ожидал что в данных есть жо*****, первоначальные записи, кто-то очень давно....
в общем спсб. за направление
...
Рейтинг: 0 / 0
EXCEPT и not in
    #39999674
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SlavaKV,

не испльзуйте оператор not in если у вас подзапрос может вернуть null
и прочитайте справку про ansi_nulls
...
Рейтинг: 0 / 0
EXCEPT и not in
    #39999677
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SlavaKV,

Для саморазвития узнайте разницу между not in и not exists. Заодно поймёте. почему null выстреливает.
...
Рейтинг: 0 / 0
EXCEPT и not in
    #39999678
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff
SlavaKV,

не испльзуйте оператор not in если у вас подзапрос может вернуть null
и прочитайте справку про ansi_nulls
Про ANSI_NULLS забыть на всю жизнь.
Вместо NOT IN всегда использовать NOT EXISTS и не париться.
...
Рейтинг: 0 / 0
EXCEPT и not in
    #39999682
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iap,

про ansi_nulls нужно знать что бы понимать почему not in ведет себя именно так. я же не предлагал его использовать :)
...
Рейтинг: 0 / 0
EXCEPT и not in
    #39999690
Фотография SlavaKV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем спасибо. про null и еже с ним все знаю, не ожидал что будут записи с значением null
при вставке, всегда заполняю всю запись значениями, null не допускаю, у тут данные трехсот летней давности достались по наследству
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / EXCEPT и not in
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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