100求救,如果写IN的sql语句

alalya 2004-06-23 05:00:53
string ls_where
ls_where="'00004200000011','00004200000012'"

select name
into :b
from yw_name
where (id in (:ls_where));

上述语句是错误的
这个语句怎么写,各位帮帮忙,分数马上送上!
谢了
...全文
151 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
freedom2001 2004-06-24
  • 打赏
  • 举报
回复
是你写错了,在IN里面的,是个分割符,而不是实际的字符串,你的SQL语句放到数据库查询器中是:
select name
into :s_name
from yw_name
where id in ="'00004200000011','00004200000012'");
把,号也作为一个字符处理了,你觉得能对吗?楼上的方法正确
sfb 2004-06-24
  • 打赏
  • 举报
回复
ls_where="'00004200000011','00004200000012'"
是一个值,应该不行
s_1 ="00004200000011"
s_2 ="00004200000012"
是多个值,可以

因为你不知道有多少个s_1所以 我觉得应该用动态sql
alalya 2004-06-24
  • 打赏
  • 举报
回复
谢谢各位关注这个问题

我在这也是讨论一种方法,其实如果用动态游标,事情就很简单的

过一会儿结帐
hgxhzzl 2004-06-23
  • 打赏
  • 举报
回复
string s_name,s_1,s_2
s_1 ="00004200000011"
s_2 ="00004200000012"

select name
into :s_name
from yw_name
where id in (:s_1,:s_2);
alalya 2004-06-23
  • 打赏
  • 举报
回复
to:10975037(猩猩)
我试过了你的写法,因为你只是把WHERE后面的()去掉了,没有实质的改变,所以还是不成,遗憾中
10975037 2004-06-23
  • 打赏
  • 举报
回复
string ls_where
ls_where="'00004200000011','00004200000012'"
select name into :b from yw_name where id in (:ls_where );
alalya 2004-06-23
  • 打赏
  • 举报
回复
看来只有逼我用游标了

哎。。。。。。
alalya 2004-06-23
  • 打赏
  • 举报
回复
to: wspeed(hong)
我返回的是一条记录,是一个sum语句,这里为了方便所以写成上述样子

to:handi(寒地)
in后面就是字符串

对了,我测试了一下,如果
ls_where="00004200000011"
就可以成功执行

handi 2004-06-23
  • 打赏
  • 举报
回复
in后面还向必须要SQL语句吧。
bgtjing 2004-06-23
  • 打赏
  • 举报
回复
select name
into :b
from yw_name
where id='' or id='';
wspeed 2004-06-23
  • 打赏
  • 举报
回复
返回两条记录的应该用游标啊

1,079

社区成员

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

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