Я искал по всему Интернету решение этой проблемы, но , похоже, никто не задавал этот вопрос до.SQL для объединения 2 несвязанных столбцов из 2 несвязанных таблиц
2 несвязанных стола, x столбцов каждый. Я хочу очень простой результат : иметь два столбца один рядом друг с другом, но с строками, соответствующими строкам (row1-row1, row2-row2).
I will elaborate in case it isn't clear to someone:
___________________
-What I want to do, is to put 2 columns one next to each other:
-table1.column1
-table2.column1
So the result would be something like this:
table1.column1.ROW1 - table2.column1.ROW1
table1.column1.ROW2 - table2.column1.ROW2
table1.column1.ROW3 - table2.column1.ROW3
table1.column1.ROW4 - table2.column1.ROW4
table1.column1.ROW5 - table2.column1.ROW5
..etc..
___________________
Запрос как "SELECT table1.column1, table2.column1 FROM table1, table2" не даст мне желаемого результата, так как он выходов строк * строки.
В случае, если кто-то интересно, почему в мире, я должен был бы поставить 2 несвязанные столбцы вместе с 2 несвязанные таблицы: Моя работа должен пойти в банк, взять свои базы данных с информацией клиентов и маски все данные (определенным образом, а не случайным образом). В конце у меня есть оригинальная таблица банка и ее идеальный клон - таблица клонов, заполняемая замаскированными данными. На этом этапе критические части пинки в:
- Что мне нужно сделать, это сравнить столбец за столбцом: 1 столбец из исходной таблицы Банка с его клоном - один и тот же идентичную колонку, но с замаскированными данными в нем вместо исходных данных (что фактически является целым новым столбцом целой новой таблицы).
Для того, чтобы все данные были замаскированы надлежащим образом, соблюдая все критерии клиента (банка), мне нужно поместить все данные из столбца X, рядом со всеми данными из столбец Y, (строка1-строка1, строка2-строка2 и т. д.).
Что я сейчас делаю, это взять десятки печатных экранов и сравнить их, что тратит много и много и много времени.
Если бы кто-нибудь мог придумать решение этой проблемы, я был бы всегда благодарен.
Следует также упомянуть, что мне нечего ПРИСОЕДИНИТЬСЯ, так как все данные из таблицы1 полностью отличаются от всех данных из таблицы2, ничего общего.
РЕШЕНИЕ была предоставлена пользователем «sstan», и она прекрасно работает. Этот запрос:
выберите table1.column, table2.column
из (выбрать ROWNUM в RN1, table1.column от YOURTABLE1.COLUMN table1) table1
присоединиться (выберите rownum как rn2, table2.COLUMN from YOURTABLE2.COLUMN table2) table2
на столе1.rn1 = таблица2.rn2;
Как адаптировать этот запрос к вашим таблицам, имейте в виду, что вы должны заменить только слова, которые я написал в письмах «капитал».
Запрос отлично работает на больших наборах данных. Я тестировал его на 100 000 строк, каждая строка на его месте, функция «rownum» не изменяет их вообще.
Это самый лучший и быстрый способ разместить 2 столбца один рядом друг с другом, с их сопоставленными рядами, из двух разных таблиц (из двух разных пользователей, а также в моем случае), у которых нет абсолютно ничего общего ПРИСОЕДИНЯЙТЕСЬ.
Will ROW_NUMBER() работать для вас? –
Пожалуйста, разместите свои определения таблиц, а также образец данных. –
Итак, если у меня есть 'table1.column1.row1', как мне найти соответствующий' table2.column1.row1'? Есть ли правило, которое позволяет вам сопоставить 2? Потому что, если это просто порядок строк, то вам нужно что-то заказать. Простое чтение обеих таблиц сверху вниз недостаточно, так как Oracle не хранит строки в определенном или детерминированном порядке внутри. – sstan