2013-11-14 101 views
6

任何人都可以告訴我查詢是否一個字符串是一個數字(雙精度)。如果字符串是數字,它應該返回true。否則它應該返回false。Postgres查詢檢查一個字符串是一個數字

考慮:

 s1 character varying; 
     s2 character varying; 

     s1 ='12.41212' => should return true 
     s2 = 'Service' => should return false 

回答

11

我認爲最簡單的方法將是一個正則表達式匹配:

select '12.41212' ~ '^[0-9\.]+$' 
=> true 

select 'Service' ~ '^[0-9\.]+$' 
=> false 
+0

就像一個魅力!謝謝。 – Daria

+0

.123.456.789。也會通過這個正則表達式 –

4

我固定的a_horse_with_no_name曾建議正則表達式。

SELECT '12.41212' ~ '^\d+(.\d+)?$'; #true 
SELECT 'Service' ~ '^\d+(.\d+)?$'; #false 
相關問題