【问题标题】:SQL command for reading all columns in the first row用于读取第一行中所有列的 SQL 命令
【发布时间】:2009-07-31 04:37:06
【问题描述】:

我有一个 Excel 表,其中第一行包含所有列的标题。我想要第一行的所有名字。

读取第一行所有条目的SQL命令是什么?

如果可能,我想定义最大限制。

另外:我想枚举所有的列名。

【问题讨论】:

  • 如果您要导入它,那么 SQL 有一种方法可以将数据直接导入表中。您能否澄清一下您要完成的更多工作。我认为这可能会有所帮助。
  • @Jon,我只是想列举第 1 行中存在的所有标题。也就是说,第 0 行的所有标题从 col-0 到 col-100(比如说)。我打算将它用于显示所有枚举标题(从第一行读取)的软件。
  • 不要忘记,在 RDBMS 中,在您对其施加顺序之前,数据正式没有排序,因此没有“第一行”。

标签: sql mysql sql-server excel


【解决方案1】:

您需要提及“HDR=No;”在您的连接字符串中。然后您可以使用以下查询:

Select Top 1 * from [SheetName$]

“HDR=No”将指定第一行不包含列名。

话虽如此,我不知道是否有SQL语句可以从表中获取列名。如果有,那么您可以在连接字符串中设置 HDR=Yes 并使用该 SQL 语句。

【讨论】:

    【解决方案2】:

    我希望我理解正确....但我认为您是说您想从表中选择列名:

    SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = [YourTableName]
    

    【讨论】:

    • +1 谢谢,@Lloyd 我可以使用 sheetname 代替 table_name
    • 在我看来,我可能根本没有真正理解这一点。我给了你在 SQL Server 中执行此操作的命令。看起来我们中的一些人认为这是一个 SQL 问题。 VBA 在这里似乎更合适,看起来 Remou 已经让你走上了正确的道路。
    【解决方案3】:

    这适用于我在 Excel 中使用保存的工作簿,它会枚举列(字段)名称。

    Sub ListFieldADO()
    
        strFile = Workbooks(1).FullName
        strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFile _
            & ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"";"
    
    
        Set cn = CreateObject("ADODB.Connection")
    
        cn.Open strCon
    
        ''You can also use the name of a named range
        Set rs = cn.OpenSchema(adSchemaColumns, _
            Array(Empty, Empty, "Sheet1$")) 
        While Not rs.EOF
            Debug.Print "     " & rs!Column_Name
            rs.MoveNext
        Wend
    
        rs.Close
        Set rs = Nothing
    End Sub
    

    【讨论】:

      【解决方案4】:
      Select Top 1 * into #temp from [SheetName$]
      
      use tempdb
      
      sp_help #temp.
      

      通过这个,你可以得到#temp表的列名。同样,您必须将数据库更改为:

      use yourDBName
      

      把数据放到一个临时表中,读取临时表的属性,就可以得到列名列表。

      【讨论】:

        猜你喜欢
        • 2010-11-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多