SQL中如何筛选变量值任意位置含指定内容的数据行?
SQL筛选包含指定字符串的行问题解答
你的代码存在两处问题,修正后即可实现需求:
- 大小写匹配不一致:你用
upper(a.Event)将字段值转为大写,但匹配的模式串还是"%Hosp%"(混合大小写),多数数据库的LIKE操作是大小写敏感的,因此应该把模式串也改为大写"%HOSP%",确保无论原字段中是大写、小写还是混合的"hosp"相关内容都能被匹配。 - 语法错误:代码开头多了一个未闭合的左括号
(,会导致SQL语法报错,需去掉多余的左括号(如果是嵌套在复杂条件中,则要补全对应的右括号)。
修正后的通用写法:
upper(a.Event) LIKE "%HOSP%"
如果你的数据库默认支持不区分大小写的LIKE匹配(比如MySQL使用不区分大小写的排序规则时),也可以简化为:
a.Event LIKE "%Hosp%"
不过前者的写法适配性更强,能兼容更多数据库环境。
内容的提问来源于stack exchange,提问作者NewUsr_stat
相关产品推荐
相关产品推荐

