gpt4 book ai didi

SQL 通配符选择

转载 作者:行者123 更新时间:2023-11-29 13:21:06 26 4
gpt4 key购买 nike

我在 transaction 表下有一个名为 memo 的列。我正在寻找带有“PAYROLL”等关键字但不包含单个单词“PAY”的备忘录。

SELECT DISTINCT memo FROM transaction WHERE memo LIKE '%PAYROLL%'

上面的查询只能找到其中包含“PAYROLL”的备忘录。但是,如何排除“PAY”?

最佳答案

这应该可以通过正则表达式实现:排除包含“PAY”且前导和尾随非字母数字字符的字符串。 (您必须在字符串的开头和结尾添加这样一个字符,例如 '.' 才能使检查生效。)

SELECT DISTINCT memo 
FROM transaction
WHERE memo LIKE '%PAYROLL%'
AND '.' || memo || '.' !~ '[^[:alnum:]]PAY[^[:alnum:]]';

正如 Tim Biegeleisen 在下面的评论中提到的,PostgreSQL 的正则表达式支持单词边界。这使得表达式更简单,我们不必再在备忘录的末尾和开头添加点:

SELECT DISTINCT memo 
FROM transaction
WHERE memo LIKE '%PAYROLL%' AND memo !~ '\mPAY\M';

关于SQL 通配符选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41700423/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com