You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在LIKE运算符中使用LTRIM与RTRIM函数

正确结合LTRIM/RTRIM与LIKE运算符的SQL写法

嘿,我看到你在SQL里把LTRIM/RTRIM和LIKE结合的时候踩了个小坑——你把函数放在单引号里了,数据库会把LTRIM(RTRIM('test '))当成普通的文本字符串来匹配,根本不会执行修剪空格的逻辑!下面给你两种常见场景的正确写法:

场景1:修剪字段值后匹配目标字符串

如果你想筛选出DEFINITION_字段去掉前后空格后包含'test'的记录,可以直接对字段应用修剪函数,再搭配LIKE:

-- 用LTRIM+RTRIM的写法
SELECT * FROM LG_211_CLCARD WHERE LTRIM(RTRIM(DEFINITION_)) LIKE '%test%';

-- 更简洁的TRIM写法(大部分数据库支持,同时去前后空格)
SELECT * FROM LG_211_CLCARD WHERE TRIM(DEFINITION_) LIKE '%test%';

场景2:修剪搜索值后匹配字段

如果你想让DEFINITION_字段包含修剪后的搜索值(也就是把'test '变成'test'再匹配),需要先修剪搜索字符串,再通过字符串拼接和LIKE结合:

通用写法(用CONCAT函数,适配多数数据库)

SELECT * FROM LG_211_CLCARD WHERE DEFINITION_ LIKE CONCAT('%', LTRIM(RTRIM('test ')), '%');

-- 同样可以替换成TRIM简化
SELECT * FROM LG_211_CLCARD WHERE DEFINITION_ LIKE CONCAT('%', TRIM('test '), '%');

不同数据库的专属写法

  • SQL Server 可以用+做字符串拼接:
    SELECT * FROM LG_211_CLCARD WHERE DEFINITION_ LIKE '%' + TRIM('test ') + '%';
    
  • Oracle 可以用||做字符串拼接:
    SELECT * FROM LG_211_CLCARD WHERE DEFINITION_ LIKE '%' || TRIM('test ') || '%';
    

小提示:尽量优先用TRIM()代替LTRIM(RTRIM()),代码更简洁,逻辑也更清晰~

内容的提问来源于stack exchange,提问作者Cll

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.01 01:22:28