2017-02-09 40 views
0

我有一個索引列,字符串類型,其中數據格式爲「1.5.4.10.7」。按點分隔字符串值拆分排序行

我需要做一個查詢返回排序的值,就好像該列是通過分割'。'字符串派生的整數數組。字符。

我可以提取與陣列:

select string_to_array(index,'.') as index_array from performance_indicators; 

如何I 1)的數組元素轉換爲整數,以及2)排序整數數組上?

回答

1

您可以簡單地把字符串數組由值整數數組和排序,例如:

with a_table(col) as (
    values ('1.2.3.4'), ('10.2.3.4'), ('3.4.5.6') 
) 

select string_to_array(col, '.')::int[] 
from a_table 
order by 1; 

string_to_array 
----------------- 
{1,2,3,4} 
{3,4,5,6} 
{10,2,3,4} 
(3 rows) 
+0

完美......簡潔大方。非常感謝你,@ klin –