存储过程中SQL语句拼接问题
存储过程中
这样写:
insert into 临时表 select * from(
select * from 表 where name='A' and convert(datetime,B.F_LWRQ)>dateadd(d,-8,getdate()) and……
)
可以查询出结果
这样写
declare @sQuery nvarchar(4000)
set @sQuery='and convert(datetime,B.F_LWRQ)>dateadd(d,-8,getdate())'
insert into 临时表 select * from(
select * from 表 where name='A' + @sQuery and……
)
就查询不出来结果了
本人菜鸟,请问各位这应该怎么拼接, 谢谢了!
------解决方案--------------------select * from 表 where name='A' & @sQuery
试试
------解决方案--------------------
declare @sQuery nvarchar(4000)
set @sQuery='and convert(datetime,B.F_LWRQ)>dateadd(d,-8,getdate())'
insert into 临时表 select * from(
select * from 表 where name='A' + @sQuery and……
)
来看下这个语句
1、变量@sQuery是个条件的字符串拼接,也就是说要动态去执行,而楼主的是普通的SQL语句,肯定是不成功的;
2、即便没有这个变量,insert into 表 select * from (子查询) t 注意这里的t,一定要加个名称。
------解决方案--------------------