2013-11-14 19 views
6

Bất cứ ai có thể cho tôi biết truy vấn để kiểm tra xem chuỗi có phải là số (chính xác kép) hay không. Nó sẽ trả về true nếu chuỗi là số. nếu không nó sẽ trả về false.Truy vấn Postgres để kiểm tra chuỗi là một số

xem xét:

 s1 character varying; 
     s2 character varying; 

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

Trả lời

11

Tôi nghĩ rằng cách dễ nhất sẽ là một trận đấu biểu thức chính quy:

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

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

Giống như một sự quyến rũ! Cảm ơn. – Daria

+0

.123.456.789. cũng sẽ vượt qua regexp này –

4

Tôi cố định cụm từ thông dụng a_horse_with_no_name đã gợi ý.

SELECT '12.41212' ~ '^\d+(.\d+)?$'; #true 
SELECT 'Service' ~ '^\d+(.\d+)?$'; #false 
Các vấn đề liên quan