Excel 列到 SQL 语句
Posted
技术标签:
【中文标题】Excel 列到 SQL 语句【英文标题】:Excel columns to SQL statement 【发布时间】:2022-01-15 11:56:45 【问题描述】:这个问题是关于将复制粘贴的列从 Excel 转换为 SQL 语句。我目前的流程包括手动更换东西。在使用一些 notepad++ 功能来控制 h 删除和替换所有出现的东西之后,我喜欢 notepad++ 提供的附加功能。我只是不确定如何使用此功能更接近最终产品。当我不得不这样做时,我觉得我无法正常操作油门和刹车,而自动化将非常好。也许我只是有这种感觉,因为我知道这可能很容易,或者至少我认为它让我很烦恼。
从excel复制/粘贴到(看起来这是notepad++):
"Random
Code" "Random
Code" "Random
Code" "Random
Code" "Random
Code" "Random
Number"
首先,我突出显示所有内容并将“(双引号)替换为锐角、左引号、反引号等等,这个符号`
其次,我将空格替换为\r\n
`Random`
`Code`
`Random`
`Code`
`Random`
`Code`
`Random`
`Code`
`Random`
`Code`
`Random`
`Code`
这给了我一个新行的每个单词,每个单词都被反勾号包围。
你可能已经猜到了,这里是我手动清理其余部分的地方
create table table_for_upload (
`Random Code`: varchar(25) null,
`Random Code`: varchar(25) null,
`Random Code`: varchar(25) null,
`Random Code`: varchar(25) null,
`Random Code`: varchar(25) null);
一致同意接下来的步骤是什么让数据看起来更像 SQL 语句。使用记事本++ 控制h 功能?还是vim?不会为 vim 添加标签。
【问题讨论】:
Excel 可能是更好的工作场所。它在 Excel 中是什么样子的?Random Code
的每个实例代表一个不同的列名?
@dougp 嘿;理解。我想请问您是否对在 excel 中完成该过程有进一步的想法。是的,每一个都是不同的,代表Random Code
列名是不同的,因为我使用的电子表格也是一个有时有换行符的两个单词的列名。在工作表中没有太多的列名。我只想在这里专注于那些。
Excel:另存为 .csv 文件。 mysql:LOAD DATA INFILE.
@O.Jones 很抱歉在这里说清楚我只需要声明。实际上不是加载数据的 SQL 解决方案。
【参考方案1】:
大部分部分都可以通过正则表达式搜索和替换来完成:
-
打开替换对话框,
选择“正则表达式”作为搜索模式
查找内容:
[[:space:]]*"([^"]+?)(\R\R?)([^"]+)"
替换为:'\1 \3': varchar(25) null,\2
点击“全部替换”
手动处理第一行:插入“create table”部分
手动处理最后一行:用“);”替换逗号
让我们检查一下[[:space:]]*"([^"]+?)(\R\R?)([^"]+)"
:
[[::space::]]*
匹配 "Random
之前的可选空格
"([^"]+?)
以非贪婪的方式匹配双引号,后跟不是双引号的所有内容,并将其存储在 \1
(\R\R?)
处理 Random
和 Code
之间的换行符并将其存储在 \2
([^"]+)"
匹配非双引号后跟双引号的所有内容,并将其存储在 \3
替换字符串使用实际行中的\1,\2,\3
值并将它们与常量varchar...
字符串混合
【讨论】:
以上是关于Excel 列到 SQL 语句的主要内容,如果未能解决你的问题,请参考以下文章
将SQL查询分析器查询的结果用SQL语句导出到Excel表格的语句怎么写?