Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / EXCEPT и not in / 8 сообщений из 8, страница 1 из 1
17.09.2020, 10:22
    #39999660
SlavaKV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EXCEPT и not in
Доброго дня.
Невероятно, но факт

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
17.09.2020, 10:27
    #39999662
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EXCEPT и not in
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
17.09.2020, 10:38
    #39999670
SlavaKV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EXCEPT и not in
[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
17.09.2020, 10:42
    #39999674
felix_ff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EXCEPT и not in
SlavaKV,

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

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

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

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


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