У меня есть таблица данных на 250 тыс., И из этих данных у меня есть 1000 строк с одинаковыми данными в каждой строке столбца, один ссылочный столбец, который отличается.
Я хотел бы сделать следующее. разделить контрольный столбец, если определенные условия выполнены, и если эти условия не выполняются, контрольное значение может остаться без изменений.
Ниже приведены мои операторы создания таблицы и вставки:
CREATE TABLE "BU_TABLE"
(
"NAME" VARCHAR2(255 BYTE),
"TEL_NO" VARCHAR2(255 BYTE),
"POST_CODE" VARCHAR2(8 BYTE),
"REF_NO" VARCHAR2(255 BYTE)
;
Причина, по которой я установил столбцы Tel_No
и Ref_No
как Varchar2
, заключается в том, что пробелы, как и у чисел, содержат пробелы: a) при вводе b) Tel_No
при В данном примере данные не имеют этой проблемы, но по мере добавления дополнительных данных эта проблема может возникнуть в будущем.
Вставьте операторы:
Insert into BU_TABLE (NAME,TEL_NO,POST_CODE,REF_NO) values ('Damian','7900123456','ME1 2BC','12345678 1234567891234');
Insert into BU_TABLE (NAME,TEL_NO,POST_CODE,REF_NO) values ('Graeme','7900789012','ME1 2DE','12 345 5678901234567');
Insert into BU_TABLE (NAME,TEL_NO,POST_CODE,REF_NO) values ('Sarah','7900456789','ME1 2FG','90123456 890123456789');
Теперь, что я хотел бы для BU_TABLE
чтобы остаться без изменений с необработанными данными. Я хотел бы создать еще одну таблицу на обороте этой таблицы, чтобы разделить Ref_No
, поэтому у меня есть последовательность из 8 чисел, пробел и затем 13 чисел. Везде, где встречается этот шаблон, я хотел бы продублировать строку и дать мне следующее:
Name | Tel_No | Post_Code | Ref_No
Damian | 7900123456 | ME1 2BC | 12345678
Damian | 7900123456 | ME1 2BC | 1234567891234
Строки, в которых требуемый код не нашел последовательность, строки данных в таблице останутся одинаковыми, поэтому мой финальный стол будет выглядеть так. Это показывает новое разделение данных, в котором 2 ссылочных номера Дамиана были разделены и теперь отображаются как 2 строки, а Грэм и Сара имеют свои исходные ссылочные номера, поскольку их последовательности не соответствуют критериям.
Финальная таблица:
Name | Tel_No | Post_Code | Ref_No
Graeme | 7900789012 | ME1 2DE | 12 345 5678901234567
Sarah | 7900456789 | ME1 2FG | 90123456 890123456789
Damian | 7900123456 | ME1 2BC | 12345678
Damian | 7900123456 | ME1 2BC | 1234567891234
Надеюсь, мои требования ясны с точки зрения того, что я ищу.
Извинения, поскольку есть еще один пост с тем же вопросом: Как мне скопировать строку и разделить ее столбцов, основанных на определенных критериях в Oracle SQL?
, но вопрос был закрыт, когда меня попросили добавить операторы create и insert, чтобы сделать мои требования более понятными, поэтому я создал новый вопрос.