我有這種類型的值列(varchar(100),null):USTX00001099。SQL - 將VARCHAR轉換爲十進制
此值的最後四個字符意味着$ 10.99
我如何轉換/在選擇功能提取10.99?
我有這種類型的值列(varchar(100),null):USTX00001099。SQL - 將VARCHAR轉換爲十進制
此值的最後四個字符意味着$ 10.99
我如何轉換/在選擇功能提取10.99?
這可能是這樣的:
SELECT TO_NUMBER(SUBSTR(col, 4))/100. FROM table
對不起BWS,我是新手。我正在查看這些值,它並不總是相同數量的字符。但我想要做的是使用RIGHT函數並選擇最後4個字符併除以100.但是,當我有這個值:0499新值將會是4而不是4.99我使用這個選擇: RIGHT(COLUMN,4)/ 100 – ACL
兩種方式浮現在腦海中。 首先,則可以選擇他最後4位數字,將其轉換爲數字類型,然後由4
select cast(right(name,4) as float)/100
如果需要強制執行貨幣格式劃分,你可以使用其他鑄像
select cast(cast(right(name,4) as float)/100 as numeric(8,2))
秒我認爲更好的方法是在轉換字符串之前格式化字符串。類似於
select cast(SUBSTRING(name,len(name)-3,2) + '.' + RIGHT(name,2) as numeric(8,2))
這應該回答您當前的問題。然而,你會遇到問題,試圖爲成本數百或數千美元的物品做到這一點。
您使用哪種rdbms? –
它總是最後4個字符? –
前4個字符是否總是'USTX',後面是帶有隱含小數位的數字? – BWS