EXCEL VBA 中的此选择会导致 Excel 中的数字格式:
strSQL = "SELECT * FROM OPENQUERY(dtb, 'SELECT col from table')"
但是,如果我在列上创建一些函数,它会在 Excel 中以文本格式生成:
strSQL = "SELECT * FROM OPENQUERY(dtb, 'SELECT sum(col) from table')"
strSQL = "SELECT * FROM OPENQUERY(dtb, 'SELECT col*1.0 from table')"
strSQL = "SELECT * FROM OPENQUERY(dtb, 'SELECT col-1 from table')"
我试过了to_number(...)
,to_number(to_char(...))
但没有帮助。
为什么?我该如何解决这种情况?
解决方案(使用 SQL 服务器强制转换函数将列转换为数字)
strSQL = "SELECT cast(col# as numeric(10, 2)) col# " _
"FROM OPENQUERY(dtb, 'SELECT sum(col) col# from table')"