sql - How to extract first and remaining words in postgres -
postgres database table contains words separated spaces in char(20) column. result select statement should table containing 2 columns.
first column should contain first word. second column should contain remaining words. example
create temp table test (name char(20)) on commit drop ; insert test values ('word11 word12 word13'), ('word21'), ('word31 word32'); select ? firstword, ? remainingwords test;
should produce
firstword remainingwords word11 word12 word13 word21 word31 word32
what expressions can used in place of ? marks produce this. can regexp used or other solution ?
using postgresql 9.1.2
convert values array , use that:
select (string_to_array(t, ' '))[1] first_word, (string_to_array(t, ' '))[2:99] test;
arrays easier work strings, particularly if have lists within row. however, can convert string if using array_to_string()
.
in version of postgres, more accurately written as:
select (string_to_array(t, ' '))[1] first_word, (string_to_array(t, ' '))[2:cardinality( string_to_array(t, ' ') )] test;
in postgres 9.6, shorthand supported:
select (string_to_array(t, ' '))[1] first_word, (string_to_array(t, ' '))[2:] test;
Comments
Post a Comment