关于SQL语句中的patindex函数使用及PB版本兼容问题

「已注销」 2002-07-12 08:27:46
Update jlupiao set tjs='1' where patindex("%"+tid+"%",:ls_ld)>0

其中 tid 为一字段

ls_id为一变量

如 ls_id="1|2|";

则若 tid="1" 即被更新

这条语句在PB6.5.1+SQL Server2000下我运行成功过

但在 PB8.0+SQL Server2000下行不通了

如果把 tid 换成常量 仍然是正常的

谁遇到过 还请不吝赐教

yeqiufeng
...全文
134 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
人生如梦 2002-07-12
  • 打赏
  • 举报
回复
学习~~
「已注销」 2002-07-12
  • 打赏
  • 举报
回复
最近用PB写程序呵

@_@
linger_liang 2002-07-12
  • 打赏
  • 举报
回复
对了,秋枫大哥您不是一直在bcb里吗?怎么晃到pb来了。。。
linger_liang 2002-07-12
  • 打赏
  • 举报
回复
是阿。sql-server是有这样的问题。
WorldMobile 2002-07-12
  • 打赏
  • 举报
回复
我也遇过这样的问题,就是右边的空格造成的

害的我检索不出数据
myclife 2002-07-12
  • 打赏
  • 举报
回复
:)我瞎蒙了,学习.
myclife 2002-07-12
  • 打赏
  • 举报
回复
:)我瞎蒙了,学习.
pbsql 2002-07-12
  • 打赏
  • 举报
回复
这是char与varchar的区别
「已注销」 2002-07-12
  • 打赏
  • 举报
回复
Update jlupiao set tjs='1' where patindex('%'+rtrim(tid)+'%','7605684|')>0;

我用这句搞定了

可能SQL Server的char的定长空格问题

可能改成varchar应该可以

只是我懒得修改文档了

@_2

它有空格的
wallis 2002-07-12
  • 打赏
  • 举报
回复
没试过帮你推一下
myclife 2002-07-12
  • 打赏
  • 举报
回复
我在用%匹配的时候基本上都用~,特殊字符存放于字符串中使用的,怎么解释呢,就好象C中的转义字符差不多(不太贴切)。
「已注销」 2002-07-12
  • 打赏
  • 举报
回复
~

在这里是什么意思
myclife 2002-07-12
  • 打赏
  • 举报
回复
pattern

一个字符串。可以使用通配符,但 pattern 之前和之后必须有 % 字符(搜索第一个和最后一个字符时除外)。pattern 是短字符数据类型类别的表达式。

改改看:
Update jlupiao set tjs='1' where patindex("~%"+tid+"~%",:ls_ld)>0
sh_yjy 2002-07-12
  • 打赏
  • 举报
回复
我的经验是:
如果是CHAR字段(aa)=(aa )
如果是VARCHAR字段(aa)<>(aa )
leonwan 2002-07-12
  • 打赏
  • 举报
回复
同意楼上意见。
fallstone 2002-07-12
  • 打赏
  • 举报
回复
经常碰到有空格找不到数据。
是不是每个检索条件都要加上TRIM呢?

1,108

社区成员

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

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