|
условие IN для двух полей?
|
|||
---|---|---|---|
#18+
Имеется две таблицы: TABLE_1 - таблица имен и TABLE_2 - таблица с данными нужно для NAME_1 (т.е., в данном примере, для ID=1, 2, 3) вытащить FLOAT_VALUE, про которые известно, что их ROW_NUM на 2 больше, чем ROW_NUM у TXT_VALUE='q', в TABLE_2 выделены красным TABLE_1 ID NAME1 NAME_12 NAME_13 NAME_14 NAME_2 TABLE_2 ID ROW_NUM TXT_VALUE FLOAT_VALUE1 1 q 1 2 w 1 3 11 4 r 1 5 1 6 9.52 1 f 2 2 w 3.52 3 e 2 4 q 2 6 2.13 1 q 3 2 w 3 3 e 2.33 4 r 3 5 3 6 3.64 1 4 2 4.14 3 q 4 4 4 5 3.24 6 y выполняю селект Код: plsql 1. 2. 3. 4. 5. 6. 7.
и получаю набор составных ключей, в которых содержится информация как о нужном ID (выделен красным), так и о нужном ROW_NUM KLUCH_SOST100000003200000006300000003 после чего могу взять нужные значения Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
FLOAT_VALUE12.12.3 вроде получил что нужно, но что-то не нравится в этом способе хотелось бы что-то типа Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2021, 14:15 |
|
условие IN для двух полей?
|
|||
---|---|---|---|
#18+
Anton_1234Имеется две таблицы: TABLE_1 - таблица имен и TABLE_2 - таблица с данными нужно для NAME_1 (т.е., в данном примере, для ID=1, 2, 3) вытащить FLOAT_VALUE, про которые известно, что их ROW_NUM на 2 больше, чем ROW_NUM у TXT_VALUE='q' Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2021, 14:30 |
|
условие IN для двух полей?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Спасибо, а то я чего-то нагородил, что мне самому не понравилось ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2021, 15:07 |
|
условие IN для двух полей?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Зачем рыть TABLE_1 дважды? Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2021, 15:34 |
|
условие IN для двух полей?
|
|||
---|---|---|---|
#18+
SY Зачем рыть TABLE_1 дважды? Упс, не заметил ROW_NUM не сквозной. SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2021, 15:49 |
|
условие IN для двух полей?
|
|||
---|---|---|---|
#18+
Если шаг небольшой и не меняется/не параметр: Код: plsql 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.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2021, 16:06 |
|
условие IN для двух полей?
|
|||
---|---|---|---|
#18+
SY, Всё тривиальнее и без призяке к длине шага. Аналитика + группировка (можно обойтись и "where row_num = q_num + 2" если значение всегда есть) Код: plsql 1. 2. 3. 4. 5.
Просто аналитика Код: plsql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2021, 20:02 |
|
условие IN для двух полей?
|
|||
---|---|---|---|
#18+
Кобанчег Всё тривиальнее и без призяке к длине шага. "Аналитика + группировка" - а кто сказал что 'q' один на id? Код: plsql 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.
"Просто аналитика" - да, правда выдаст 'q' для которой нет строки c row_num = row_num('q') + 2: Код: plsql 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.
Но это поправимо: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2021, 22:24 |
|
условие IN для двух полей?
|
|||
---|---|---|---|
#18+
SY Но это поправимо just for fun Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
+ Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Только вот не надо говорить, а если q, q идут подряд. (тогда явно указывается after match кляуза) А вообще любая однопроходность может оказаться бссмысленной если у ТС 100500 строк на каждый ID и имеются индексы по TXT_VALUE и ROW_NUM. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.04.2021, 15:19 |
|
|
start [/forum/topic.php?fid=52&msg=40062200&tid=1880287]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
129ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
others: | 255ms |
total: | 495ms |
0 / 0 |