2015-06-14 55 views
-1

我有一個表像這樣的列:操縱數據檢索特定的數字

Location 
19.15 
19.14 
19.13 
18.01 
18.02 

我搜索功能來從開始只有2位是這樣的:

Location 
19 
19 
19 
18 
18 

不幸我還找不到解決方案。

+0

如果前面有三位數字會發生什麼?例如,'100.01'?還是隻有一個? '1.999999'?列文本/字符,還是小數點/浮點數?輸出應該是一個數字還是字符?你爲什麼試圖只獲得前兩個字符? –

回答

1
select cast(location as int) as location 
from your_table 
1

它完全取決於數據類型。如果你想點之前來處理不同位數的話,或許正則表達式的功能將

select substr(location, 1, 2) as location 
from your_table; 

我們可以將字符串列的前兩個字符與SUBSTR()函數返回好:

select regexp_substr(location, '([0-9]+)\.(.*)', 1, 1, 'i', 1)) as location 
from your_table; 

如果位置是一個數字,你要刪除的尾隨小數,你可以使用TRUNC()這樣的:

select trunc(location) as location 
from your_table;