|
Объединить значения из нескольких столбцов и вывести их в строку без повторений
|
|||
---|---|---|---|
#18+
Здравствуйте форумчане! Возникла необходимость в таком запросе: Есть два столбца с информацией, допустим с адресами было стало адрес1 адрес2 адрес3 адрес4 адрес2 адрес5 адрес6 адрес3 При нужном запросе необходимо вывести в отдельный столбец строку с адресами, которые повторяются между собой, независимо где они были в первом или во втором столбце и убрать повторяющиеся, то есть по логике он выводит новый стоблец адрес1, адрес2, адрес2, адрес5 адрес3, адрес4, адрес6, адрес3 Отбросим повторения: новый столбец адрес1, адрес2, адрес5 адрес3, адрес4, адрес6 Добавим в первые два столбца новую запись: адрес5 адрес6 Теперь запрос выведет адрес1, адрес2, адрес3, адрес4, адрес2, адрес5, адрес6, адрес3, адрес5, адрес6 Отбросим повторения: адрес1, адрес2, адрес3, адрес4, адрес5, адрес6 Можно ли это как-то вообще реализовать запросами? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 17:28 |
|
Объединить значения из нескольких столбцов и вывести их в строку без повторений
|
|||
---|---|---|---|
#18+
zumotamokhimoru, В один столбец - легко: Код: plsql 1. 2. 3.
Развернуть в строку тоже просто - GROUP_CONCAT А вот если вам нужна однострочная таблица, с уникальными значениями, то это зависит от вашей версии СУБД, возможно придётся самому колхозить PIVOT. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 18:49 |
|
Объединить значения из нескольких столбцов и вывести их в строку без повторений
|
|||
---|---|---|---|
#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. 30. 31. 32. 33. 34.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 19:42 |
|
Объединить значения из нескольких столбцов и вывести их в строку без повторений
|
|||
---|---|---|---|
#18+
Только сейчас дошло, это же банальное нахождение цепочек. То есть решаемое. Но вот вопрос, а что делать с кольцами и повторениями? То есть, что и почему должно выдать вот это: COL1 COL2122334412431 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 19:53 |
|
Объединить значения из нескольких столбцов и вывести их в строку без повторений
|
|||
---|---|---|---|
#18+
Спасибо за отведённое время, смотря на ваш запрос, я понимаю, что ничего не смыслю в SQL) Да, вы правы, это нахождение цепочек! Мне необходимо вывести из такой таблицы цепочку из столбцов bilo, stalo, которая не повторяется idTPseknomdataprimechstalobilo11192119-22019-08-13NULL36 Правобережная18 Правобережная23421342-12019-08-13NULL44 Центральная гор.35 Центральная гор.321121-12019-08-04NULL15 Центральная гор.22 Правобережная43422342-22019-08-13NULL44 Центральная гор.35 Центральная гор.54351435-12019-08-13NULL27 Центральная гор.13 Центральная гор.62221222-12019-10-05NULL36 Правобережная24 Правобережная72231223-12019-10-05NULL36 Правобережная13 Центральная гор.82241224-12019-10-05NULL36 Правобережная22 Правобережная Но используя ваш код для своей таблицы, у меня выводится 0 строк Можете глянуть, что не так? По идее он он должен выдать так: 36 Правобережная,18 Правобережная,24 Правобережная,13 Центральная гор.,22 Правобережная,15 Центральная гор.,27 Центральная гор. Код: 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.
MAPA3OTТо есть, что и почему должно выдать вот это: Просто 1,2,3,4 по идее, так как остальные значения все повторяются И скиньте номер карты что-ли, хотя бы на пиво кину за такой запрос) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2019, 11:56 |
|
Объединить значения из нескольких столбцов и вывести их в строку без повторений
|
|||
---|---|---|---|
#18+
zumotamokhimoru, Если ещё актуально, то стало ещё менее понятно, а как вы получили: 36 Правобережная,18 Правобережная,24 Правобережная,13 Центральная гор.,22 Правобережная,15 Центральная гор.,27 Центральная гор. У вас в примере, нет связки автор18 Правобережная и 24 Правобережная ни с чем, кроме 36 Правобережная. авторС 13 ещё хуже, через неё цепляются 2 вообще левых улицы. Чего-то я не понимаю, видимо. Вам нужны все, кто замешан в этом Содоме? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2019, 01:24 |
|
Объединить значения из нескольких столбцов и вывести их в строку без повторений
|
|||
---|---|---|---|
#18+
Кажется нужны просто уникальные адреса, но возможно я ошибаюсь... Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2019, 12:59 |
|
Объединить значения из нескольких столбцов и вывести их в строку без повторений
|
|||
---|---|---|---|
#18+
MAPA3OT, В принципе еще даже сейчас актуально) авторЧего-то я не понимаю, видимо. Вам нужны все, кто замешан в этом Содоме? Да, так как в список попадают сразу два столбца, то общий список по которому надо сравнивать увеличивается, поэтому там практически вообще всёёё Возьмём ту же таблицу: idTP sek nom data primech stalo bilo1 119 2 119-2 2019-08-13 NULL 36 Правобережная 18 Правобережная2 342 1 342-1 2019-08-13 NULL 44 Центральная гор. 35 Центральная гор.3 21 1 21-1 2019-08-04 NULL 15 Центральная гор. 22 Правобережная4 342 2 342-2 2019-08-13 NULL 44 Центральная гор. 35 Центральная гор.5 435 1 435-1 2019-08-13 NULL 27 Центральная гор. 13 Центральная гор.6 222 1 222-1 2019-10-05 NULL 36 Правобережная 24 Правобережная7 223 1 223-1 2019-10-05 NULL 36 Правобережная 13 Центральная гор.8 224 1 224-1 2019-10-05 NULL 36 Правобережная 22 Правобережная Ищем сначала 36 Правобережная 18 Правобережная, ну так как они первые в список попали, сравниваем, похожие забираем, откидываем повторения, выйдет: Код: plaintext
но вот список пополнился, теперь идём еще раз по таблице и сравниваем уже с полученными значениями таблицу, выйдет: Код: plaintext
Вот и всё, 2 и 4 строку оно не затронуло, так как они не пересекаются, но её бы тоже потом вывести отдельной веткой желательно, но мне кажется это вообще не реализуемо ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2019, 07:54 |
|
|
start [/forum/topic.php?fid=47&msg=39886534&tid=1828826]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
208ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 312ms |
0 / 0 |