|
работа с диапазонами
|
|||
---|---|---|---|
#18+
Есть диапазон чисел д1 - задается вручную, и диапазон в бд - д2 (mssql) уже заполненный, как можно запросом сравнить их и получить значения, которые есть в д1, но нет в д2. пример д1(1,2,3,4,5) д2(2,3) вывести 1,4,5 просто сравнивать значения из д1 с д2 по одному очень долго, так как в д1 и д2 могут содержать большие значения ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2018, 11:20 |
|
работа с диапазонами
|
|||
---|---|---|---|
#18+
warkdimka, пример к диапазонам как-то мало подходит. Сравнивать надо строки? Или что? Или начнём с нуля. Как в БД храниться эта информация? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2018, 12:00 |
|
работа с диапазонами
|
|||
---|---|---|---|
#18+
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, а в другом число, то это и есть наш случай! ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2018, 12:44 |
|
работа с диапазонами
|
|||
---|---|---|---|
#18+
И для варианта 2: необходимо при заполнении двух массивов фиксировать максимальный элемент заполнения, т.е. это будет N, чтобы при сравнении не "гулять" по всему массиву. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2018, 13:22 |
|
работа с диапазонами
|
|||
---|---|---|---|
#18+
Gennadiy Usov, Какой массив, если это БД MS SQL? Предлагаете в BLOB хранить? Не расточительно ли? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2018, 14:17 |
|
работа с диапазонами
|
|||
---|---|---|---|
#18+
warkdimkaЕсть диапазон чисел д1 - задается вручную, и диапазон в бд - д2 (mssql) уже заполненный, как можно запросом сравнить их и получить значения, которые есть в д1, но нет в д2. пример д1(1,2,3,4,5) д2(2,3) вывести 1,4,5 просто сравнивать значения из д1 с д2 по одному очень долго, так как в д1 и д2 могут содержать большие значения Код: sql 1.
в D2 должен быть индекс по value ... |
|||
:
Нравится:
Не нравится:
|
|||
05.12.2018, 14:23 |
|
работа с диапазонами
|
|||
---|---|---|---|
#18+
спасибо всем, кто откликнулся. вариант Select value from D1 where value not in (select value from D2 where value is not null) как писал Dima T подошел, чет я не подумал про not in( ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2018, 11:41 |
|
работа с диапазонами
|
|||
---|---|---|---|
#18+
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. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2018, 14:56 |
|
работа с диапазонами
|
|||
---|---|---|---|
#18+
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 Не надо требовать знаний терминологии от начинающих, главное чтобы пример привел. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2018, 19:40 |
|
работа с диапазонами
|
|||
---|---|---|---|
#18+
warkdimka, Терминология очень важна. Если ты ставишь задачу то будь придирчив к своим словам. Любое лишне слово или иносказательное может вкорне поменять смысл. Никакие это не диапазоны. Это множества. Но отвечающим пришлось поднапрячся сильнее чтоб понять это. Не делай так. Уважай их время. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2018, 10:25 |
|
|
start [/forum/topic.php?fid=16&fpage=11&tid=1340015]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
66ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 183ms |
0 / 0 |