从excel的列上运行sql查询

我已经运行了许多查询,通过复制和粘贴从Excel中的一个表中的列或另一个数据库中的表。 唯一的问题是,如果它是一个varchar字段,则需要添加逗号,引号也是如此。

如果我想复制并粘贴一列来运行查询,那么以正确的格式获取它的简单方法是什么?

例如:

select * from table1 where columnName in ('row one', 'row two', 'row three', 'row four', 'row five') 

如果你想快速从Excel数据生成SQL语句,我可以这样build议:

将下面的公式写入空单元格中:

 ="insert into table values('" &B3 &"','" & C3 & "','"&D3&"');" 

其中B3,C3,D3是表格数据。

新的单元格将使用正确值的SQLstring。

资料来源: http : //chandoo.org/wp/2008/09/22/sql-insert-update-statements-from-csv-files/

我已经创build了一个用户定义函数来构build逗号分隔列表。 我有一个.xla文件,以便我可以随时使用。

基本上,它允许我select一列数据,并创build一个列表与我select的任何分隔符(逗号作为默认值),并允许我指定是否应使用引号(closures这些数字值)。

 Function CommaList(DataRange As Range, Optional Seperator As String = ",", Optional Quotes As Boolean = True) As String Dim iCellNum As Integer Dim sTemp As String If DataRange.Columns.Count > 1 Then CommaList = "Select a Single Column" Exit Function End If For iCellNum = 1 To DataRange.Cells.Count If Quotes Then sTemp = sTemp + "'" + DataRange.Cells(iCellNum, 1) + "'" Else sTemp = sTemp + DataRange.Cells(iCellNum, 1) End If If iCellNum < DataRange.Cells.Count Then sTemp = sTemp + Seperator End If Next iCellNum CommaList = sTemp End Function 

我的build议涉及到使用Replace()函数将所有选项卡(Char(9))转换为','然后将所有'换行'(CHar(13))改为','。 你的结果然后是'恭喜和引用'

 Declare @String Varchar(max) set @string = 'row one row two row three row four' set @string = '''' + replace ( replace(@string, Char(9) ,''' , ''' ),Char(13) ,''' , ''' )+ '''' print @string 

这使得结果看起来更漂亮:

 set @string = replace (replace ( replace(@string, Char(9) ,''' , ''' ),Char(13) ,''' , ''' ), Char(10), '') print @string 

我做了类似的事情,也使用“in”子句。

如果您从Excel复制,请使用连接function首先在另一列中格式化数据。 所以要添加一个逗号给单元格A2,例如=Concatenate(A2,",") 。 将所有行复制下来。 然后复制并粘贴在SQL等colum