我在Teradata上。我有一個ID列,看起來像這樣:SQL - 更改字母數字列的數據類型
23
34
W7
007
021
90
GS8
我想這些數字轉換爲數值,因此007應該是7和021是21.當數被存儲爲一個字符串,我通常做column * 1
到轉換爲數字,但在這種情況下,它給了我一個不好的字符錯誤,因爲那裏有字母。
我該如何在查詢中的select語句中執行此操作?
我在Teradata上。我有一個ID列,看起來像這樣:SQL - 更改字母數字列的數據類型
23
34
W7
007
021
90
GS8
我想這些數字轉換爲數值,因此007應該是7和021是21.當數被存儲爲一個字符串,我通常做column * 1
到轉換爲數字,但在這種情況下,它給了我一個不好的字符錯誤,因爲那裏有字母。
我該如何在查詢中的select語句中執行此操作?
假設數值總是以數字開頭,那麼這樣的事情應該工作:
update t
set col = (case when substr(col, 1, 1) between '0' and '9'
then cast(cast(col as int) as varchar(255))
else col
end);
或者,你可以忘記的轉換,做:
update t
set col = trim(leading '0' from col);
注:這兩個假設如果第一個字符是數字,那麼整個字符串包含數字。第二種假定值不是全爲零(或者更確切地說,返回空字符串)。
「W7」的理想數值是多少? –