我有一个表,其值如下:
book;65
book;1000
table;66
restaurant;1202
park;2
park;44444
有没有办法使用 postgres sql 删除所有内容,无论单词的长度如何,包括分号及其后的所有内容?
我计划在弄清楚这一点后进行如下查询:
select col1, modified_col_1
from table_1
--修改后没有分号和之后的所有内容
您可以使用
substring
和strpos()
:
select col1, substring(col1, 1, strpos(col1, ';') - 1) as modified_col_1
如果存在没有;
的值,则上述值将给出错误
另一种选择是将字符串拆分为一个数组,然后选择第一个元素:
select (string_to_array(col1, ';'))[1]
from table_1
如果没有;
,这也将起作用