如何将所有行中曾经使用过的所有唯一符号从一列插入另一列
How to insert all unique symbols ever used in all rows from one column into another
我正在寻找在 2 table 列的值中使用了哪些唯一符号,我想以 .csv 格式提取它们。
我有一个 table,其中包含很多名称和代码,我希望看到每列曾经使用过的每个唯一字符都在新行上打印一次。
例如数据集是:
_____________________
| column 1 | column 2 |
---------------------
| value 1 | value 2 |
---------------------
CSV 在 Excel 中打开时如下所示(符号的顺序并不重要):
column 1, column 2
a a
e e
l l
u u
v v
1 2
我知道如何从 table 中提取行,但不知道如何解析值以及提取和组织 csv 中的唯一字符。有谁知道解决方案,如果可以用 SQL?
我正在考虑在 SQL 中提取所需的数据集,然后使用不同的语言,将内容填充到字符串变量中,将字符串转换为单个符号的数组,然后在两列中打印出唯一的并将其保存为 .csv 格式。
已通过嵌套 while 循环和 substring() 函数解决。将我感兴趣的列导出到新的 source_table 中以获取顺序 ID,然后我(使用该过程)从 source_table 的列中的每一行中挑选出每个符号,并仅将唯一符号插入到导出 target_table.
drop procedure if exists sample_procedure;
delimiter #
create procedure sample_procedure()
begin
declare v_row_count int default 0;
declare v_sym_count int default 0;
declare v_iterate int default 1;
declare v_total int default 0;
set v_total = (select count(id) from source_table);
while v_row_count < v_total do
set v_row_count = v_row_count + 1;
set v_sym_count = 0;
set v_sym_count = (select length(column) from source_table where id = v_row_count);
set v_iterate = 1;
while v_iterate <= v_sym_count do
insert into target_table (symbol)
select substring(column, v_iterate, 1)
from source_table
where id = v_row_count
and not exists (select symbol
from target_table
where symbol in (select substring(column, v_iterate, 1)
from source_table
where id = v_row_count)
);
set v_iterate = v_iterate + 1;
end while;
end while;
commit;
end #;
对其他列执行此操作,然后从 target_table 导出符号。
我正在寻找在 2 table 列的值中使用了哪些唯一符号,我想以 .csv 格式提取它们。
我有一个 table,其中包含很多名称和代码,我希望看到每列曾经使用过的每个唯一字符都在新行上打印一次。
例如数据集是:
_____________________
| column 1 | column 2 |
---------------------
| value 1 | value 2 |
---------------------
CSV 在 Excel 中打开时如下所示(符号的顺序并不重要):
column 1, column 2
a a
e e
l l
u u
v v
1 2
我知道如何从 table 中提取行,但不知道如何解析值以及提取和组织 csv 中的唯一字符。有谁知道解决方案,如果可以用 SQL?
我正在考虑在 SQL 中提取所需的数据集,然后使用不同的语言,将内容填充到字符串变量中,将字符串转换为单个符号的数组,然后在两列中打印出唯一的并将其保存为 .csv 格式。
已通过嵌套 while 循环和 substring() 函数解决。将我感兴趣的列导出到新的 source_table 中以获取顺序 ID,然后我(使用该过程)从 source_table 的列中的每一行中挑选出每个符号,并仅将唯一符号插入到导出 target_table.
drop procedure if exists sample_procedure;
delimiter #
create procedure sample_procedure()
begin
declare v_row_count int default 0;
declare v_sym_count int default 0;
declare v_iterate int default 1;
declare v_total int default 0;
set v_total = (select count(id) from source_table);
while v_row_count < v_total do
set v_row_count = v_row_count + 1;
set v_sym_count = 0;
set v_sym_count = (select length(column) from source_table where id = v_row_count);
set v_iterate = 1;
while v_iterate <= v_sym_count do
insert into target_table (symbol)
select substring(column, v_iterate, 1)
from source_table
where id = v_row_count
and not exists (select symbol
from target_table
where symbol in (select substring(column, v_iterate, 1)
from source_table
where id = v_row_count)
);
set v_iterate = v_iterate + 1;
end while;
end while;
commit;
end #;
对其他列执行此操作,然后从 target_table 导出符号。