powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Сравнить таблицы
13 сообщений из 13, страница 1 из 1
Сравнить таблицы
    #39969377
Earl11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Имеются две почти одинаковые таблица, за исключением одного поля. Надо вывести все записи, которые есть в первой, но нет во второй. Except вывел не все записи. Какие могут быть ещё варианты?
...
Рейтинг: 0 / 0
Сравнить таблицы
    #39969380
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Earl11
Какие могут быть ещё варианты?

not exists
Earl11
Except вывел не все записи

Что же за записи не вывел Except?
...
Рейтинг: 0 / 0
Сравнить таблицы
    #39969390
Earl11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
msLex,
В первой таблице грубо говоря 300 записей, во второй 220. Except выдал 50 записей. Где остальные - вопрос.
Что именно с not exist надо сделать? Подзапросом?
...
Рейтинг: 0 / 0
Сравнить таблицы
    #39969393
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Earl11
msLex,В первой таблице грубо говоря 300 записей, во второй 220. Except выдал 50 записей. Где остальные - вопрос.
https://docs.microsoft.com/ru-ru/sql/t-sql/language-elements/set-operators-except-and-intersect-transact-sql?view=sql-server-ver15 EXCEPT returns distinct rows from the left input query that aren't output by the right input query.
...
Рейтинг: 0 / 0
Сравнить таблицы
    #39969396
Earl11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гавриленко Сергей Алексеевич,
Догадывался о таком. Как посмотреть все?
...
Рейтинг: 0 / 0
Сравнить таблицы
    #39969399
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Earl11
Гавриленко Сергей Алексеевич,
Догадывался о таком. Как посмотреть все?
Сделать join на исходную таблицу. Или сделать через not exists.
...
Рейтинг: 0 / 0
Сравнить таблицы
    #39969424
Earl11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гавриленко Сергей Алексеевич,
not exists ничего не возвращает
...
Рейтинг: 0 / 0
Сравнить таблицы
    #39969426
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Earl11
Гавриленко Сергей Алексеевич,
Догадывался о таком. Как посмотреть все?


Добавьте к список полей ROW_NUMBER() OVER (PARTITION BY .... все поля .... ORDER BY (SELECT NULL)) AS RN
...
Рейтинг: 0 / 0
Сравнить таблицы
    #39969430
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Earl11
Гавриленко Сергей Алексеевич,
not exists ничего не возвращает
Ну так поправьте, чтобы возвращал. Особое внимание стоит уделить 14й строке вашего запроса.
...
Рейтинг: 0 / 0
Сравнить таблицы
    #39969442
Earl11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
a_voronin, помогло, большое спасибо
...
Рейтинг: 0 / 0
Сравнить таблицы
    #39969832
Earl11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
a_voronin,
Задача слегка усложнилась. Данные те же, только в селекте появился case и конструкция ROW_NUMBER() OVER (PARTITION BY ... ORDER BY (SELECT NULL)) AS RN на него ругается

Логично использовать not exists, но не понимаю отчего он ничего не возвращает
...
Рейтинг: 0 / 0
Сравнить таблицы
    #39969839
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Earl11
a_voronin,
Задача слегка усложнилась. Данные те же, только в селекте появился case и конструкция ROW_NUMBER() OVER (PARTITION BY ... ORDER BY (SELECT NULL)) AS RN на него ругается

Логично использовать not exists, но не понимаю отчего он ничего не возвращает


Сделайте подзапрос, в подзапросе вычислите значение вашего мегавыражения и дайте ему название. После этого маневр с RN сработает как и прежде.
...
Рейтинг: 0 / 0
Сравнить таблицы
    #39969842
Earl11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
a_voronin,
Спасибо. Удалил просто case из набора в ROW_NUMBER()... вроде, работает)
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Сравнить таблицы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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