急!sql200 like使用?

xzgtliu 2003-10-21 08:07:48
string thdwcx
thdw.text='徐州'
thdwcx='%' + thdw.text + '%'
int lssl
select count(*)
into :lssl
from du1dpb_tmp
WHERE F37 like :thdwcx
using sqlca;
if sqlca.sqlcode=0 then
messagebox("提示窗口1","成功1:"+string(lssl))
else
messagebox("提示窗口1","失败1:"+sqlca.sqlerrtext)
end if
为何 只显示数量为0
我的表中字段确实有‘徐州’开始的
...全文
24 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
xzgtliu 2003-10-22
  • 打赏
  • 举报
回复
非常感谢大家的热情帮助
本问题解决,方法为
thdwcx ='%'+trim(thdwcx) + '%'
select count(*) into :lssl from du1dpb_tmp WHERE rtrim(F37) like :thdwcx ;
trim(f37)此函数不认,用rtrim(f37)

thelazyman 2003-10-22
  • 打赏
  • 举报
回复
那你使用数据窗口datawindow试试,在数据窗口中设置模糊查询的检索参数
在运行时
使用
string ls_tmp
ls_tmp=thdw.text
dw_1.settransobject(sqlca)
dw_1.retrieve(ls_tmp)
xzgtliu 2003-10-21
  • 打赏
  • 举报
回复
结果出不来。
感谢大家的帮助。
语法大家都是对的,问题是为何不能模糊查询,如条件写全结果都可以出。
我F37字段长60位char类型,是不是有问题。
jdsnhan 2003-10-21
  • 打赏
  • 举报
回复
从外面给变量赋值:
string ls_temp
ls_temp = '%' + thdwcx + '%'
select count(*) into :lssl
from du1dpb_tmp
WHERE F37 like :ls_temp ;
thelazyman 2003-10-21
  • 打赏
  • 举报
回复
我也许不是“高手”,但请看:
string thdwcx
int lssl

thdw.text='徐州'
// thdwcx=thdw.text
thdwcx="'%" + thdw.text + "%'"
//注意上述字符变量的处理
select count(*)
into :lssl
from du1dpb_tmp
WHERE F37 like :thdwcx
using sqlca;
if sqlca.sqlcode=0 then
messagebox("提示窗口1","成功1:"+string(lssl))
else
messagebox("提示窗口1","失败1:"+sqlca.sqlerrtext)
end if
祝你好运,老兄!!
特此关注。。。
xzgtliu 2003-10-21
  • 打赏
  • 举报
回复
把%去掉也不行
liliang800207 2003-10-21
  • 打赏
  • 举报
回复
若是以徐州开头
把徐州前的%去掉
要不好像默认前边有字符
xzgtliu 2003-10-21
  • 打赏
  • 举报
回复
1、我这样写 select count(*) into :lssl from du1dpb_tmp WHERE F37 like '%徐州%'
可查到‘徐州电台'这条记录
2、若用变量thdwcx='徐州'
select count(*) into :lssl from du1dpb_tmp WHERE F37 like '%'+:thdwcx+'%'
查不到‘徐州电台'这条记录,
为何!为何!奇怪!奇怪!高手帮忙!!!我用pb7.0+sql200+winserver200

xzgtliu 2003-10-21
  • 打赏
  • 举报
回复
1、用 '%'+:thdwcx+'%' 语句这样写确实正确
2、但若thdw.text='徐州',就查不到‘徐州电台'这条记录
3、但若thdw.text='徐州电台'',就可查到‘徐州电台'这条记录
4、为何用like '徐州%' 在pb7.0中就不能查到'徐州电台'这条记录,pb7.0有缺陷
mittee 2003-10-21
  • 打赏
  • 举报
回复
用 '%'+:thdwcx+'%' 肯定能查到。
用 :thdwcx+'%' 也能查到‘徐州电台'
xzgtliu 2003-10-21
  • 打赏
  • 举报
回复
我用pb7.0我发现如果我把thdw.text加长='徐州电台'就能查找到,f37字段内容确实有此‘徐州电台'
奇怪??模糊查询不能用?
yl_yz 2003-10-21
  • 打赏
  • 举报
回复
thdwcx="'%" + thdw.text + "%'"
adorabl2282 2003-10-21
  • 打赏
  • 举报
回复
你为什么要那样写了,你这样试一试,也许有用
string thdwcx
thdw.text='徐州'
thdwcx=thdw.text
int lssl
select count(*)
into :lssl
from du1dpb_tmp
WHERE F37 like '%'+:thdwcx+'%'
using sqlca;
if sqlca.sqlcode=0 then
messagebox("提示窗口1","成功1:"+string(lssl))
else
messagebox("提示窗口1","失败1:"+sqlca.sqlerrtext)
end if

1,108

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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