SQL点滴32—Excel中CONCATENATE函数生成SQL语句

当拿到一个Excel的时候需要将这里面的数据插入到数据库里面,该怎么办,除了使用SSIS数据导入之外还可以使用Excel中的CONCATENATE函数,这个有点技巧,第一次使用的时候可能会让你有点困惑。如果我们理解这个函数的定义就不难了。

定义

CONCATENATE 函数可将最多 255 个文本字符串合并为一个文本字符串。联接项可以是文本、数字、单元格引用或这些项的组合。例如,如果您的工作表的单元格 A1 中包含某个人的名字,单元格 B1 中包含这个人的姓氏,那么,您可以通过使用以下公式将这两个值合并到另一个单元格中:=CONCATENATE(A1," ",B1)此示例中的第二个参数 (" ") 为空格字符。您必须将希望在结果中显示的任意空格或标点符号指定为使用双引号括起来的参数。

语法
CONCATENATE(text1, [text2], ...)CONCATENATE 函数语法具有下列参数(参数为:操作、事件、方法、属性、函数或过程提供信息的值。):
Text1 必需。要连接的第一个文本项。
Text2, ... 可选。其他文本项,最多为 255 项。项与项之间必须用逗号隔开。


注释: 您也可以使用连接符号 (&) 计算运算符代替CONCATENATE 函数来连接文本项。例如,=A1 & B1 返回相同的值为=CONCATENATE(A1, B1)

举例

excel内容如下:

nsrbm     mc     gly
001        a1     小李
002        a2     小王
003        a3     小三
004        a4     小四

首先先看下面表达式:

=CONCATENATE("insert into DaoRu(nsrbm,mc,gly) values('",A2,"','",B2,"','",C2,"');")

这个首选这表达式前面有一个“=”,然后表达式名称CONCATENATE(),最后是它的参数,这部分是最复杂的了。

第一个参数:"insert into DaoRu(nsrbm,mc,gly) values('"      这是一个字符串

第二个参数:,A2,                                                              这是一个单元格引用

第三个参数:"','"                                                                这是一个字符串

第四个参数:,B2,                                                              这是一个单元格引用

第五个参数:"','"                                                                这是一个字符串

第六个参数:,C2,                                                              这是一个单元格引用

第七个参数:"');"                                                               这是一个字符串

最后生成的语句如下:

insert into DaoRu(nsrbm,mc,gly) values('001','a1','小李');
insert into DaoRu(nsrbm,mc,gly) values('002','a2','小王');
insert into DaoRu(nsrbm,mc,gly) values('003','a3','小三');
insert into DaoRu(nsrbm,mc,gly) values('004','a4','小四');

=CONCATENATE("INSERT INTO item(Groupid,Itemname) VALUES('",A3,"','",B3&"-"&C3&"-"&D3,"');")

把A3,B3,C3,D3用“-”连接起来然后写入itemname

=B3&"-"&C3&"-"&D3

把A3,B3,C3,D3用“-”连接起来生成另外一列

作者:Tyler Ning
出处:http://www.cnblogs.com/tylerdonet/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,请微信联系冬天里的一把火

原文地址:https://www.cnblogs.com/tylerdonet/p/3008639.html