如何快速查找某个字符串在NTEXT中的数目
比如我要在一个NTEXT字段中查找共有多少个“a”?
怎么做呢?
SQL中有直接的函数吗
问题点数:60、回复次数:8Top
1 楼chendanztj(落其中)回复于 2005-08-02 11:52:15 得分 0
很急,自己顶一下吧Top
2 楼vivianfdlpw()回复于 2005-08-02 12:35:30 得分 0
无直接的函数,应用程序里判断或许比较好Top
3 楼hdhai9451(☆新人类☆)回复于 2005-08-02 12:42:52 得分 0
select num=len(NTEXT字段)-len(replace(NTEXT字段,'a','')) from tbTop
4 楼tangqijun199(撒旦.冲上了5角还差一个猩猩,继续努力……)回复于 2005-08-02 14:05:28 得分 0
len(NTEXT)-len(replace(NTEXT,'a',''))Top
5 楼chendanztj(落其中)回复于 2005-08-02 14:27:23 得分 0
楼上两位的思路很好,可是len好像不支持NTEXT类型阿Top
6 楼btut2004(养鱼炒股)回复于 2006-02-05 09:06:49 得分 0
的确,text太多的不方便。
我都是用程序处理的Top
7 楼qduck123654(酷鸭)回复于 2006-02-05 10:35:30 得分 0
具体点吧!有点意思哦!Top
8 楼77zjh77(瞬)回复于 2006-02-05 14:06:27 得分 60
len 和 replace 都不支持 blob(image ,text) 类型的编程
使用 blob 类型的 readtext 来读取块数据
datalength 获取 blob 类型的长度
下面是个大概的流程,具体查书
delcare @textptr binary(16) --blob 类型转换
delcare @textsize int --blob 类型每次读取的块数据长度
delcare @textindex int --blob 类型每次读取的index 位置
begin tran
select @textptr = textptr (blob 类型字段),@textsize ,@textindex
from table(holdlock) -- 注意holdlock
while 循环 -- 当前 index < datalength(blob 类型字段)
begin
readtext --读取块数据
--开始处理
select @textsize ,@textindex --重新设置读取长度和index
end
commit tran
1.注意最后一次读取的块长度,否则出错
2.中文问题,每次读取出来的中文如果编码错位,则中文出现乱码,那么中间处理的比较也会出错此问题尤其注意Top




