在sql中将查出来的值作为存储过程的where条件

在线等,急,希望各位大侠帮帮忙!

第1个回答  2013-07-18
如果你确定查出来的只有一个结果,你可以select tjnr into 变量名 from ....
把结果放到变量里,然后在后面引用
如果有很多结果,可以用游标追问

具体点呢

追答

你是什么数据库?

追问

sql server

第2个回答  2013-07-18
不把结果转成一个字符串,直接在后面写上
在end后加上
and ( select TJNR from ....... ) = ?? 你预计的一个值。
如果说 TJNR 是一个条件串,象 ' and ss = dfs ' 这样的内容,就需要用动态SQL语句追问

查出来的@SqlString的值直接就是”and (1>1 or...“了

追答

需要用动态SQL语句

追问

对啊

追答

设置一个字符变量 @c_sql varchar(max)

然后,把你现在写的SQL 语句设置成 @c_sql的值,最后,@c_sql = @c_sql + @sqlstring就可以了。
最后 exec ( @c_sql )

追问

有个问题,里面转成字符串的话原本的字符串怎么转,像原本@SID='S01'这个’S01‘怎么转

追答

''S01'' 就是写两个

本回答被提问者采纳