关于Like语句查询的问题

sy8644 2010-08-19 03:30:38
SELECT * FROM Exam WHERE ActName like '%决定%';
SELECT * FROM Exam WHERE ActName like '%决定';
在Oracle中,第一条不能查出数据,第二每次能查询出数据.
这是怎么回事,有什么解决的方法 .
补充下:ActName是Clob类型的.
...全文
364 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
sy8644 2010-08-19
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 itling 的回复:]

用函数dbms_lob.instr来代替LIKE
[/Quote]

嗯,测试了一下,确实用这个函数比like要好得多,非常感谢.
wbin_ndsc 2010-08-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wbin_ndsc 的回复:]
关于Clob,我不是很清楚,关于lz的两个like,第一句查询的是包含“决定”的记录,但是“决定”的前后都要有别的字符,而第二句,查询的是“决定”结尾的记录,也就是后面没有别的字符的。比如“我决定辞职”,用第一种能查到,第二种不能;而“你来做决定”用第一种查不到,第二种能。
[/Quote]
不好意思,理解错了,如果是“决定”结尾的记录,两种应该都能查出来,等待高手的解答
sy8644 2010-08-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 phoenix_99 的回复:]

恐怕是你的clob字段没有以'决定'结尾数据吧
[/Quote]
是第二条可以查询,第一条查询不出来...
「已注销」 2010-08-19
  • 打赏
  • 举报
回复
用函数dbms_lob.instr来代替LIKE
sy8644 2010-08-19
  • 打赏
  • 举报
回复
%不能匹配0个字符吗?
貌似SQL Server里面是可以在,在Oracle中其它数据类型也是可以的.我测试过number类型的数据是可以用%代表空字符的,又如查询的时候 '%%' 在两个百分号里什么都不写,可以查询全部内容.

现在问题是在Clob中不能使用%匹配结束.郁闷中啊..才开始搞Oracle,,,学识浅薄.

CLob难道不能用Like,,貌似查询是可以但非常的卡.
Phoenix_99 2010-08-19
  • 打赏
  • 举报
回复
恐怕是你的clob字段没有以'决定'结尾数据吧
Phoenix_99 2010-08-19
  • 打赏
  • 举报
回复
恐怕是你的clob字段没有怡’决定‘的数据吧
wbin_ndsc 2010-08-19
  • 打赏
  • 举报
回复
关于Clob,我不是很清楚,关于lz的两个like,第一句查询的是包含“决定”的记录,但是“决定”的前后都要有别的字符,而第二句,查询的是“决定”结尾的记录,也就是后面没有别的字符的。比如“我决定辞职”,用第一种能查到,第二种不能;而“你来做决定”用第一种查不到,第二种能。
duqiangcise 2010-08-19
  • 打赏
  • 举报
回复
对clob的字段进行like??没有用过!期待高手。。。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧