zoukankan      html  css  js  c++  java
  • 解决EXCEL导入 SQL 2000过程,列中存在不同格式的问题

    好久没有发贴了,今天上来顺便发一贴。

    昨天真的比较郁闷!把数据从EXCEL导入到SQL 2000的时候发现了类型转换不了的问题。
    如EXCEL文件中有一“工号”列,工号中有些数据格式是文本类型、有的是字符类型。当使用:
    SELECT B.[工号],*
    FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
    ,'Excel 5.0;HDR=YES;DATABASE=C:\0612.xls',SG$) AS B


    查询结果与Excel表(注意选择的2行):



    Excel表:



    语句来查看的时候,发现有些非文本类型的工号显示为NULL.开始还以为可以使用CAST来转换数据类型,但使用了CAST 还是一样。
    SELECT CAST(B.[工号] AS nvarchar(20)),*
    FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
    ,'Excel 5.0;HDR=YES;DATABASE=C:\0612.xls',SG$) AS B

    到网上Search了一下,找不到一个好的解决方法。
    要是每次都要去修改Excel文件的单元格格式,就比较的郁闷。因为客户不是象我们这样的专业去改格式。
    后来找一个可以解决的方法就是,使用到IMEX=1这一参数。
    SELECT 工号,*
    FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
    ,'Excel 5.0;HDR=YES;IMEX=1;DATABASE=C:\0612.xls',SG$) AS B


    正确结果:


    备注:
    HDR=YES 有两个值:YES/NO,表示第一行是否字段名,默认是YES,第一行是字段名
    IMEX=1 解决数字与字符混合时,识别不正常的情况.
  • 相关阅读:
    680. Valid Palindrome II【easy】
    125. Valid Palindrome【easy】
    459. Repeated Substring Pattern【easy】
    2. Trailing Zeros【easy】
    142. O(1) Check Power of 2【easy】
    181. Flip Bits【easy】
    183.Wood Cut【hard】
    61. Search for a Range【medium】
    关闭微软对win10的推送
    让未激活的win8.1不再跳出提示激活的窗口
  • 原文地址:https://www.cnblogs.com/wghao/p/678134.html
Copyright © 2011-2022 走看看