如何从文本列返回子字符串

时间:2011-08-25 10:18:59

标签: sql postgresql

我有一张表如下,我想只返回这个人的姓名,例如Will,Armstrong,来自第二栏。我怎样才能做到这一点?

1. Will,Armstrong:similarity=99.8   2011-08-25 17:16:16
2. Tom,White:similarity=90.0        2011-08-24 16:25:15
3. Johnny,Thomas:similarity=80.0    2011-08-24 13:20:15
4. John,Broderick:similarity=70.0   2011-08-21 10:25:15

感谢。

约翰

3 个答案:

答案 0 :(得分:2)

SELECT split_part(textcolumn, ":",1) FROM yourTable

您可以使用基于一位的split_part功能。您还应该考虑通过在不同列中保存名称和相似性来规范化数据库。

答案 1 :(得分:0)

select split_part(col2, ':', 1) as name
from mytable

答案 2 :(得分:0)

如果你想要'冒险(:)的任何东西,你可以使用:

SELECT SUBSTRING(column2 FROM '^[^:]+') FROM table;

SELECT SUBSTRING(column2 FROM 0 FOR POSITION(':' IN column2)) FROM table;

有关PostgreSQL中的字符串函数,请参阅here