Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Почему Full Join работает так с условием???  [new]
Anny88
Member

Откуда:
Сообщений: 4
Объясните, пожалуйста, почему то не уходят строчки по условию, то исчезают нужные??

Создала две тестовые таблицы
create table #L (DOCID INt, NUM int )
create table #R (DOCID INt, NUM int)
Insert Into #L (DOCID, NUM) Values (1,1), (2,2), (3,3)
Insert Into #R (DOCID, NUM) Values (1,1), (2,2), (4,4)


Просто выборка - все отлично!
Select * from #L As L Full Join #R As R on L.DOCID=R.DOCID 


DOCID NUM DOCID NUM
1 1 1 1
2 2 2 2
3 3 NULL NULL
NULL NULL 4 4

Но мне нужно не выводить с DOCID=2 и тут я не понимаю, почему??? Куда делась 3?

Select * from #L As L Full Join #R As R on L.DOCID=R.DOCID 
Where R.NUM<>2


Должно было быть 1, 3, 4

DOCID NUM DOCID NUM
1 1 1 1
NULL NULL 4 4

Если вот так условие задать...

Select * from #L As L Full Join #R As R on L.DOCID=R.DOCID And R.NUM<>2 And L.NUM<>2


То уходит связка по 2, но строки с ней все равно выводятся:

DOCID NUM DOCID NUM
1 1 1 1
2 2 NULL NULL
3 3 NULL NULL
NULL NULL 2 2
NULL NULL 4 4

Сообщение было отредактировано: 17 мар 20, 12:35
17 мар 20, 12:33    [22100526]     Ответить | Цитировать Сообщить модератору
 Re: Почему Full Join работает так с условием???  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20174
Anny88
Куда делась 3?
Потому что NULL<>2 ни разу не TRUE...
17 мар 20, 12:35    [22100532]     Ответить | Цитировать Сообщить модератору
 Re: Почему Full Join работает так с условием???  [new]
invm
Member

Откуда: Москва
Сообщений: 9114
Select * from #L As L Full Join #R As R on L.DOCID=R.DOCID 
Where R.NUM<>2 or R.NUM is null
17 мар 20, 12:58    [22100562]     Ответить | Цитировать Сообщить модератору
 Re: Почему Full Join работает так с условием???  [new]
Anny88
Member

Откуда:
Сообщений: 4
Akina, Точно! Спасибо!
17 мар 20, 14:23    [22100655]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить