Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Сравнить два списка
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Есть простая табличка: Код: sql 1. 2. 3. с первичным ключом по обоим полям. И есть, к примеру, три переменные Data1, Data2, Data3 того же типа integer. В переменных могут быть либо значения, либо null. Для каждого КeyID в таблице может быть от 0 до 3 значений. Вопрос: нужно определить, существует ли для определенного KeyID в таблице значения, записанные в переменных, или нет. Т.е. идентичны ли списки значений в переменных и в таблице. Есть ли элегантный способ определить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2015, 20:00 |
|
||
|
Сравнить два списка
|
|||
|---|---|---|---|
|
#18+
Kirill Razuvaevтри переменные Data1, Data2, Data3 где? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2015, 20:13 |
|
||
|
Сравнить два списка
|
|||
|---|---|---|---|
|
#18+
Kirill RazuvaevЕсть ли элегантный способ определить? IN, COUNT(), результат сравнить с тройкой. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2015, 20:22 |
|
||
|
Сравнить два списка
|
|||
|---|---|---|---|
|
#18+
Kirill Razuvaev, Первое что приходит в голову сделать процедуру для сравнения select list(DataID) c (Data1, Data2, Data3) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2015, 20:56 |
|
||
|
Сравнить два списка
|
|||
|---|---|---|---|
|
#18+
Kirill RazuvaevДля каждого КeyID в таблице может быть от 0 до 3 значений <...> нужно определить, существует ли для определенного KeyID в таблице значения, записанные в переменных, или нет. Т.е. идентичны ли списки значений в переменных и в таблице. Есть ли элегантный способ определить?А что делать, если: 1) для keyId = 5 в таблице будут вот такие две записи: Код: plaintext 1. 2. - ? Короче, пример с данными не помешал бы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2015, 22:13 |
|
||
|
Сравнить два списка
|
|||
|---|---|---|---|
|
#18+
Kirill RazuvaevЕсть ли элегантный способ определить?Смотря что ты считаешь элегантным. Про Count и List уже подсказали, я бы ещё EB добавил (если задача регулярная - лучше даже ХП). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2015, 23:12 |
|
||
|
Сравнить два списка
|
|||
|---|---|---|---|
|
#18+
Kirill Razuvaev, Если можно гарантировать что 1. Код: sql 1. всегда вернет отсортированный набор; Тут как понимаю гарантии нет? 2. data1 < data2 < data3 (null может быть в любом месте) Это гораздо проще обеспечить. То работает такой запрос: Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2015, 23:16 |
|
||
|
Сравнить два списка
|
|||
|---|---|---|---|
|
#18+
Шавлюк ЕвгенийЕсли можно гарантировать что list всегда вернет отсортированный набор; Тут как понимаю гарантии нет? Так это не у него гарантии нет, это ни у кого гарантии нет. Дистинкт разве что добавить по старинке, но это опять же та ещё гарантия... В общем, вы ему щас нарекуомендуете таких вот элегантных запросов типа приведённого вместо нормальной ХП - он-то выберет какой-нибудь, а потом жалеть будет. Кирилл, не слушай никого, пиши ХП. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2015, 23:31 |
|
||
|
Сравнить два списка
|
|||
|---|---|---|---|
|
#18+
Хм, а kdv правильный вопрос задал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2015, 09:58 |
|
||
|
Сравнить два списка
|
|||
|---|---|---|---|
|
#18+
kdvKirill Razuvaevтри переменные Data1, Data2, Data3 где?Дело происходит в ХП, занимающейся импортом из внешней, не нормализованной таблицы, в которой Data1, Data2, Data3 для каждого KeyID лежат в соседних столбцах. Задача состоит из двух частей: 1. Определить идентичность (или НЕ идентичность) списков значений, как по количеству, так и по содержимому значений. 2. Синхронизировать списки. Пока решил так: Код: 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. 45. 46. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2015, 10:36 |
|
||
|
Сравнить два списка
|
|||
|---|---|---|---|
|
#18+
Шавлюк Евгений2. data1 < data2 < data3 (null может быть в любом месте) Это гораздо проще обеспечить.Увы, данные внешние, закладываться на их сортировку еще боле опасно, чем на особенности LIST :-) Ну, а сортировать значения в локальных переменных моветоном попахивает :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2015, 10:38 |
|
||
|
Сравнить два списка
|
|||
|---|---|---|---|
|
#18+
Kirill Razuvaevвизуально не очень нравится :-)Мне тоже :-) Код: plaintext 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. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. Код: plaintext 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. 45. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2015, 14:06 |
|
||
|
Сравнить два списка
|
|||
|---|---|---|---|
|
#18+
Таблоид Код: plaintext 1. 2. Не правильно, по условию: Kirill Razuvaevс первичным ключом по обоим полям. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2015, 14:18 |
|
||
|
Сравнить два списка
|
|||
|---|---|---|---|
|
#18+
Шавлюк ЕвгенийТаблоид Код: plaintext 1. 2. Не правильно, по условию: Kirill Razuvaevс первичным ключом по обоим полям.Подкрутит, напильник там точно есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2015, 14:38 |
|
||
|
Сравнить два списка
|
|||
|---|---|---|---|
|
#18+
ТаблоидПодкрутит, напильник там точно есть. Суровое решение :-) Для начала придется разобраться с with recursive, которые я ранее стороной обходил :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2015, 16:03 |
|
||
|
Сравнить два списка
|
|||
|---|---|---|---|
|
#18+
Kirill RazuvaevТаблоидПодкрутит, напильник там точно есть. Суровое решение :-) Для начала придется разобраться с with recursive, которые я ранее стороной обходил :-)recursive здесь только для экономии места. Если в лом с ним разбираться, то вот это: Код: plaintext -- замени на Код: plaintext 1. 2. 3. 4. И будет тоже самое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2015, 16:07 |
|
||
|
|

start [/forum/topic.php?fid=40&fpage=82&tid=1563073]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
85ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
103ms |
get tp. blocked users: |
2ms |
| others: | 14ms |
| total: | 249ms |

| 0 / 0 |
