1

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

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

前任:

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

4 回答 4

1

如果您希望从 Excel 数据中快速生成 SQL 语句,我可以建议:

在空单元格中写下以下公式:

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

其中 B3、C3、D3 指的是表格数据。

新单元格将包含正确值的 SQL 字符串。

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

于 2013-08-21T16:53:52.397 回答
0

我创建了一个用户定义函数来构建逗号分隔的列表。我有一个 .xla 文件,所以我总是可以使用它。

基本上,它允许我选择单列数据,并使用我选择的任何分隔符(默认为逗号)创建一个列表,并允许我指定是否应使用引号(为数值关闭这些)。

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
于 2013-08-21T17:03:58.170 回答
0

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

如果您从 excel 中复制,请先使用 concatenate 函数在另一列中格式化您的数据。因此,要在单元格 A2 中添加一个逗号,例如=Concatenate(A2,","). 将其复制到所有行。然后将列复制并粘贴到sql等中。

于 2013-11-04T11:29:59.607 回答
0

我的建议是使用 Replace() 函数将所有制表符 (Char(9)) 转换为“,”,然后将所有“换行符”(CHAR(13)) 更改为“,”。然后你的结果是'Commafied andquoted'

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
于 2013-08-21T17:07:29.070 回答