2011-01-06 19 views
1

我在Excel中有一个工作表。其中一列(“ID”)包含值为1.01,1.02,1.03,2.01,3.01,3.04等的字符串。Excel和SQL:如何将字符串转换为Select语句中的双精度

我想获取该表中的所有行,其中“ID”>> =某些值使用SQL语句和ADO 连接(来自VBScript代码)。 所以,我有两个问题:

1)我可以将ID的值转换为SQL中的double值吗?那么,我可以将值作为浮点数进行比较,并应用<和>条件。 2)我可以在Excel工作簿的select语句中使用宏吗?

回答

0

我找到了解决办法:如果我投列整数,我有同样的效果,所以,我使用CInt函数:

Select * from ["&strSheetName&"$] where CInt(TestCaseId) >= " & abs (strRow) 
0

尝试

WHERE CONVERT (ID, FLOAT) >= value 
+0

这是行不通的,错误:“[微软] [ODBC Excel驱动程序]语法错误(缺少操作员)查询表达式'Cast(TestCaseId as Float)> 20.01'“。 SQL语句:从[Main $]中选择Cast(TestCaseId as Float)> 20.01 – vmg 2011-01-06 15:16:12

+0

也许查询对于在大于号之前没有空格这一事实很敏感? – Alain 2011-01-06 15:20:22

4

CASTFLOAT功能是CDbl()例如

SELECT CDbl(ID) AS ID_float 
    FROM [Sheet$]; 

DOUBLEFLOAT的代名词,因此收缩C AST到DblË

相关问题