excel编写sql语句导入mysql_使用Excel拼装Sql语句将数据导入数据库

其实这是一种很笨拙的方法,不过用这种方法可以节省开发一个导入功能的时间。

大概的原理就是利用

下面我们以导入

一、假设你的表格有A、B、C三列数据,希望导入到你的数据库中表格table,对应的字段分别是field1、field2、field3

二、在你的表格中增加一列,利用

当拿到一个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用“-”连接起来生成另外一列

demo:

=CONCATENATE("insert into duty_recored(CHANNEL,DUTY_TIME,PERSON_ID,USER_NAME,PERSON_SEX,QUENE) values ('",A1,"','",B1,"','",C1,"','",D1,"','",E1,"','",F1,"');")

=CONCATENATE("insert into duty_recored(CHANNEL,DUTY_TIME,PERSON_ID,USER_NAME,PERSON_SEX,QUENE) values ('",A1,"',date_format('"&IF(ISBLANK(B1),"",TEXT(B1,"yyyy-mm-dd hh:mm"))&"','%Y-%m-%d %H:%i'),'",C1,"','",D1,"','",E1,"','",F1,"');")

=CONCATENATE("insert into asset(assetid,assetuid,treeasset,sendersysid,assetnum,description,classstructureid,eq10,assettype,ifivoltage,measureunit,quantity,manufacturer,newmanufacturer,supplier,custxh,custcccode,custccdate,oldguaranty,licenseplate,"&"custinstalldate,installdate,spatialcode,runcode,longitude,latitude,aboveheight,landform,eqoperatunit,eqadjpipeunit,custsbdepmt,custsbcrew,custsblead"&",Purchaseprice,Replacecost,Totalcost,ytdcost,budgetcost,isrunning,unchargedcost,totunchargedcost,totdowntime,changeby,changedate,orgid,siteid,langcode,invcost,children,"&"disabled,autowogen,mainthierchy,moved,hasld,islinear,returnedtovendor,tloampartition,plusciscontam,pluscisinhousecal,pluscismte,"&"pluscpmextdate,pluscsolution,iscalibration,virtualasset,rowstamp) values(assetseq.nextval,assetseq.nextval,"&RIGHT(A44479,1)&",'"&B44479&"','"&IF(ISBLANK(C44479),D44479,C44479)&"','"&E44479&"','"&F44479&"','"&G44479&"','"&H44479&"','"&I44479&"','"&J44479&"',1,'"&L44479&"','"&M44479&"','"&N44479&"','"&O44479&"','"&P44479&"',to_date('"&IF(ISBLANK(Q44479),"",TEXT(Q44479,"yyyy-mm-dd"))&"','yyyy-mm-dd'),'"&R44479&"','"&S44479&"',to_date('"&IF(ISBLANK(T44479),"",TEXT(T44479,"yyyy-mm-dd"))&"','yyyy-mm-dd'),to_date('"&IF(ISBLANK(U44479),"",TEXT(U44479,"yyyy-mm-dd"))&"','yyyy-mm-dd'),'"&V44479&"','"&W44479&"','"&X44479&"','"&Y44479&"','"&Z44479&"','"&AA44479&"','"&AB44479&"','"&AC44479&"','"&AD44479&"','"&AE44479&"','"&AF44479&"',0,0,0,0,0,1,0,0,0,'MAXADMIN',SYSDATE,'PGCS','XSZ','ZH',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,maxseq.nextval);")

=CONCATENATE("",C2,"",B2,">")

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值