首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

请问怎么连接两个查询字符串

2014-01-25 
请教如何连接两个查询字符串本帖最后由 ldjssoft 于 2014-01-23 23:45:35 编辑请教如何连接两个查询字符串

请教如何连接两个查询字符串
本帖最后由 ldjssoft 于 2014-01-23 23:45:35 编辑 请教如何连接两个查询字符串,我下面的代码报错了。

是根据传递物cftx参数,判断是否加入“@Date<>LastJxDate ”这个查询条件到查询代码中。




Declare @CfTx int,@Date Datetime,@CfCxStr varchar(50)


Set @Date=Convert(Varchar(10),GetDate(),120)
set @CfTx=1
set @CfCxStr=''

if @CfTx=1 
set @CfCxStr= and @Date<>LastJxDate 


select * from CkInfo where ShenHe=1 +@CfCxStr+ and day(BeginDate)=day(@Date))


[解决办法]
SQL 语句要拼接的话,就得用 sp_executesql 了:
Declare @CfTx int,@Date Datetime, @CfCxStr varchar(50)
declare @sql nvarchar(max)
Set @Date=Convert(Varchar(10),GetDate(),120)
set @CfTx=1
set @CfCxStr=''
if @CfTx=1 set @CfCxStr=' and @Date<>LastJxDate'
set @sql='select * from CkInfo where ShenHe=1' + @CfCxStr + ' and day(BeginDate)=day(@Date)'
execute sp_executesql @sql,N'@Date Datetime',@Date=@Date

[解决办法]
你这个SQL属于动态SQL,要用exec来执行,帮你把代码改了下,你看看是否可以执行

Declare @CfTx int,@Date Datetime,@CfCxStr varchar(50)
 
 
Set @Date=Convert(Varchar(10),GetDate(),120)
set @CfTx=1
set @CfCxStr=''
 
if @CfTx=1 
set @CfCxStr= ' and @Date<>LastJxDate '
 
set @CfCxStr='select * from CkInfo where ShenHe=1' +@CfCxStr+ 'and day(BeginDate)=day('+@Date+'))'
exec(@CfCxStr)

热点排行