使用 Postgres 在特定单词之前进行数据投影?

Data projection abefore a particular word using Postgres?

我在 Postgres 中有一个列,其中包含文本。我想在该文本中搜索一个特定的词,而不是在该词之后显示任何内容 示例:如果文本是:"I am a very religious user of stack overflow. I always use it for reserach." 所以现在我不想在 "always" 之后显示任何内容 如何做到这一点?

预期的 O/P 应该是:"I am a very religious user of stack overflow. I" 这个词总是相同的,但可能会或可能不会出现在文本中。 谢谢

您可以使用正则表达式:

select regexp_replace(the_column, 'always.*', '')

这会将单词 always 之后(包括在内)的所有内容替换为空,但如果找不到该单词,则不会替换任何内容。

如果您还想 "catch" 相同的单词大写或混合大小写,只需将标志传递给 regexp_replace 以不区分大小写的方式工作

select regexp_replace(the_column, 'always.*', '', 'i')

SQLFiddle 示例:http://sqlfiddle.com/#!15/d41d8/4307