我在postgres11.0中有下表
col1 col2 col3 col4
NCT00001723 4894402 xenical (orlistat)capsules xenical
NCT00001724 4894403 xenical (orlistat)capsules orlistat
NCT00001725 4894404 capsules capsules
NCT00001726 4894405 insulin ins
我想过滤上面的行,这样col3=col4或col3的确切内容应该包含在col4中。
所需输出为:
col1 col2 col3 col4
NCT00001723 4894402 xenical (orlistat)capsules xenical
NCT00001724 4894403 xenical (orlistat)capsules orlistat
NCT00001725 4894404 capsules capsules
我正在下面的查询中尝试获取此输出。
SELECT
*
FROM
table
where col3 = col4 or --exact match
regexp_matches(col3, '(.*).*\(') = col4 or --match content before brackets
regexp_matches(col3, '.*\(.*\).*') = col4 --match content in brackets
这里的任何建议都会很有帮助。谢谢
1条答案
按热度按时间r8uurelv1#
如果我没听错的话,你可以用转义这个词
\y
:\y
:只在单词的开头或结尾匹配在您的查询中:
db小提琴演示: