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?) 处理 RandomCode 之间的换行符并将其存储在 \2 ([^"]+)" 匹配非双引号后跟双引号的所有内容,并将其存储在 \3 替换字符串使用实际行中的\1,\2,\3 值并将它们与常量varchar... 字符串混合

【讨论】:

以上是关于Excel 列到 SQL 语句的主要内容,如果未能解决你的问题,请参考以下文章

如何把Excel数据转化成SQL语句

如何用SQL语句查询Excel数据

如何用SQL语句查询Excel数据?

将SQL查询分析器查询的结果用SQL语句导出到Excel表格的语句怎么写?

sql语句将EXCEL导入SQL数字太长引起SQL显示错误E+

如何用SQL语句查询Excel数据?