2013-08-28 76 views
0

我在Netezza數據庫中有一個名爲DART_STG1的表。該表有一個varchar列。我正在嘗試使用下面的SQL將varchar轉換爲數字,但它總是會引發錯誤。IBM Netezza,如何將一個varchar轉換爲一個帶有TO_NUMBER的數字(...,...)

代碼

SELECT DISTINCT TO_NUMBER(M12,'99G99') 
FROM DART_STG1 
WHERE M12 IS NOT NULL; 

拋出一個錯誤:

ERROR [HY000] ERROR: Bad numeric input format

這個錯誤是什麼意思?

+2

SELECT DISTINCT M12 FROM DART_STG1 WHERE M12 IS NOT NULL的結果是什麼;?根據錯誤信息,我的猜測是一個或多個記錄的數據無法轉換,因此您可能需要做一些數據按摩才能正確轉換。 – Brian

+0

數據按摩是什麼意思? – Teja

+0

當我執行該SQL查詢時,我沒有得到任何輸出。 – Teja

回答

0

錯誤:

ERROR [HY000] ERROR: Bad numeric input format 

造成,因爲你喂信成TO_NUMBER。你餵它99G99這不是一個數字。

該程序試圖告訴你,它不是一個數字告訴你,數字輸入格式不好,因爲錯誤很清楚地說。

+1

如何使用TO_NUMBER函數將字符串轉換爲整數? – Teja

+1

to_number(STORE_NUMBER,'999') - 即使這會返回錯誤。這裏的實際問題是「什麼應該是正確的輸入格式?」我們都知道錯誤信息在英語中意味着什麼。 – KalC

1

PDA(Netezza)Conversion functions page提供了示例,並且與Template patterns一起,您可以選擇適當的格式。

但是,我收到了我的數據集相同的錯誤。我懷疑這是關於STORE_NUMBER中值的格式的問題,Netezza不喜歡。

相關問題