我有一個名爲頻率4個可能的值列:如何將文本值轉換爲數值?
Every 3 Months
Every 6 Months
Every Month
Every 4 Weeks
我想這些值轉換爲數值。 1/3,1/6,1和4,這樣我就可以對它們執行方程式。
如何將這些值轉換爲上述數值?例如,有沒有辦法告訴系統「每月」應該顯示爲數字1?
謝謝你的時間。
我有一個名爲頻率4個可能的值列:如何將文本值轉換爲數值?
Every 3 Months
Every 6 Months
Every Month
Every 4 Weeks
我想這些值轉換爲數值。 1/3,1/6,1和4,這樣我就可以對它們執行方程式。
如何將這些值轉換爲上述數值?例如,有沒有辦法告訴系統「每月」應該顯示爲數字1?
謝謝你的時間。
使用CASE
聲明
Select
Case when FREQUENCY = 'Every 3 Months' then 1/3.0 -- added .0 to avoid integer division
When FREQUENCY = 'Every 6 Months' then 1/6.0
When FREQUENCY = 'Every Month' then 1
Else 4
End
更新:如果你想1/3
代替0.333
然後使它作爲字符串
Select
Case when FREQUENCY = 'Every 3 Months' then '1/3'
When FREQUENCY = 'Every 6 Months' then '1/6'
When FREQUENCY = 'Every Month' then '1'
Else '4'
End
注:你需要讓所有的結果表達式作爲字符串以避免隱式轉換
是,使用「案例」的語句,你可以得到值你want.For例如:
select FREQUENCY,
case FREQUENCY
when 'Every 3 Months' then 1/3
when 'Every 6 Months' then 1/6
when 'Every Month' then 1
when 'Every 4 Weeks' then 4
else -1
end
from your_table;
1.Take看看這個語句的結果。如上所述,您可以使用case
語句來獲取數字值。
2.You可以添加float
場your_table:
alter table your_table add (newfield float)
3.Initiate您newfield
通過根據頻率字段值所需的值。
update your_table set newfield =
case FREQUENCY
when 'Every 3 Months' then 1/3
when 'Every 6 Months' then 1/6
when 'Every Month' then 1
when 'Every 4 Weeks' then 4
else -1
end
4.使用您的newfield
計算任何你想要的。
很好的答案,但是操作者可能想要顯示「1/3」,「1/6」,「1」,而不是數字。 –
謝謝Gordan,因爲這條線我認爲是數字*我可以對它們執行方程式*可能是錯的 –
@GordonLinoff - 在答案中添加了它 –