2011-01-06 118 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Ë

相關問題