powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Программирование [игнор отключен] [закрыт для гостей] / работа с диапазонами
10 сообщений из 10, страница 1 из 1
работа с диапазонами
    #39742736
warkdimka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть диапазон чисел д1 - задается вручную, и диапазон в бд - д2 (mssql) уже заполненный, как можно запросом сравнить их и получить значения, которые есть в д1, но нет в д2. пример д1(1,2,3,4,5) д2(2,3) вывести 1,4,5
просто сравнивать значения из д1 с д2 по одному очень долго, так как в д1 и д2 могут содержать большие значения
...
Рейтинг: 0 / 0
работа с диапазонами
    #39742752
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
warkdimka,

пример к диапазонам как-то мало подходит. Сравнивать надо строки? Или что? Или начнём с нуля. Как в БД храниться эта информация?
...
Рейтинг: 0 / 0
работа с диапазонами
    #39742778
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
warkdimkaЕсть диапазон чисел д1 - задается вручную, и диапазон в бд - д2 (mssql) уже заполненный, как можно запросом сравнить их и получить значения, которые есть в д1, но нет в д2. пример д1(1,2,3,4,5) д2(2,3) вывести 1,4,5
просто сравнивать значения из д1 с д2 по одному очень долго, так как в д1 и д2 могут содержать большие значенияВариант 1. Если информация в каждом массиве ранжирована, т.е. от 1 до М, то надо постепенно, переходя одновременно в каждом массиве от 1 до М, сравнивать числа.

И не надо будет сравнивать первые числа одного массива с последними числами другого массива.

Вариант 2. Самый простой. Создать два, ну очень больших массива, в которые необходимо занести одни 0.
Далее необходимо все числа заносить в эти массивы по номеру этого числа.
Далее необходимо перебрать все элементы этих двух массивов и определить элементы массива, где 0.
И вот где в одном массиве 0, а в другом число, то это и есть наш случай!
...
Рейтинг: 0 / 0
работа с диапазонами
    #39742805
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И для варианта 2: необходимо при заполнении двух массивов фиксировать максимальный элемент заполнения, т.е. это будет N, чтобы при сравнении не "гулять" по всему массиву.
...
Рейтинг: 0 / 0
работа с диапазонами
    #39742834
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gennadiy Usov,

Какой массив, если это БД MS SQL? Предлагаете в BLOB хранить? Не расточительно ли?
...
Рейтинг: 0 / 0
работа с диапазонами
    #39742842
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
warkdimkaЕсть диапазон чисел д1 - задается вручную, и диапазон в бд - д2 (mssql) уже заполненный, как можно запросом сравнить их и получить значения, которые есть в д1, но нет в д2. пример д1(1,2,3,4,5) д2(2,3) вывести 1,4,5
просто сравнивать значения из д1 с д2 по одному очень долго, так как в д1 и д2 могут содержать большие значения
Код: sql
1.
Select value from D1 where value not in (select value from D2 where value is not null)


в D2 должен быть индекс по value
...
Рейтинг: 0 / 0
работа с диапазонами
    #39743365
warkdimka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо всем, кто откликнулся.
вариант Select value from D1 where value not in (select value from D2 where value is not null) как писал Dima T подошел, чет я не подумал про not in(
...
Рейтинг: 0 / 0
работа с диапазонами
    #39743543
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
warkdimkaвариант Select value from D1 where value not in (select value from D2 where value is not null) как писал Dima T подошел
Вот только он работает не с диапазонами, а с множествами, но преобразовывать диапазон в множество Вы сами запретили постановкой задачи
warkdimkaв д1 и д2 могут содержать большие значения
Испытайте его на диапазонах 1-10000000 и 200000000-10000000000.
...
Рейтинг: 0 / 0
работа с диапазонами
    #39743809
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovwarkdimkaвариант Select value from D1 where value not in (select value from D2 where value is not null) как писал Dima T подошел
Вот только он работает не с диапазонами, а с множествами, но преобразовывать диапазон в множество Вы сами запретили постановкой задачи
Не, просто хрустальный шар протирай иногда, он же написал
warkdimkaпример д1(1,2,3,4,5) д2(2,3) вывести 1,4,5
Не надо требовать знаний терминологии от начинающих, главное чтобы пример привел.
...
Рейтинг: 0 / 0
работа с диапазонами
    #39748803
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
warkdimka,

Терминология очень важна. Если ты ставишь задачу то будь придирчив к своим словам.

Любое лишне слово или иносказательное может вкорне поменять смысл.

Никакие это не диапазоны. Это множества.

Но отвечающим пришлось поднапрячся сильнее чтоб понять это.

Не делай так. Уважай их время.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / работа с диапазонами
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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