查询问题(select * from xxx where name IN (...) )

jmcao_peter 2003-08-01 05:01:17

select stu_no,name,age
into :ls_stu_no, :ls_name, :ls_age
from student
where stu_no IN ('2003001','2003002','2003003');
没问题!!

但是 如果 IN 后面用变量的话 应该怎么写??

我写的原程序: 
string ls_temp

ls_temp = "('2003001','2003002','2003003')"

select stu_no,name,age
into :ls_stu_no, :ls_name, :ls_age
from student
where stu_no IN :ls_temp ;

// 
...全文
180 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jmcao_peter 2003-08-01
  • 打赏
  • 举报
回复
按 edisonwong(开发也快乐) 的方法改后,出现错误:
Procedure has not been executed or has no results.
klbt 2003-08-01
  • 打赏
  • 举报
回复
不用字符
用字符串数组
edisonwong 2003-08-01
  • 打赏
  • 举报
回复
修改如下试试
string ls_sql
string ls_temp

ls_temp = "('2003001','2003002','2003003')"

ls_sql = "select stu_no,name,age "+&
"into '"+ls_stu_no+"','"+ls_name+"','"+ls_age+"'"+&
"from student"+&
"where stu_no IN "+ls_temp
execute immediate :ls_sql;
jmcao_peter 2003-08-01
  • 打赏
  • 举报
回复
救命啊!!!! :(
jmcao_peter 2003-08-01
  • 打赏
  • 举报
回复
用动态sql语句,我也试过,不过也不行!

string ls_sql
string ls_temp

ls_temp = "('2003001','2003002','2003003')"

ls_sql = "select stu_no,name,age "+&
"into '"+ls_stu_no+"','"+ls_name+"','"+ls_age+"'"+&
"from student"+&
"where stu_no IN '"+ls_temp+"'"

execute immediate :ls_sql;

bzszp 2003-08-01
  • 打赏
  • 举报
回复
不行
要么用动态sql语句,要么把变量分开

752

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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