exec('select count(1) from PersonalTrainInfo where '+@fild+ '=''' +@valu+'''')
我想在where 后面加在加一个and限定条件,单引号还是没弄太明白,该怎么改下呢?
------解决方案-------------------- exec('select count(1) from PersonalTrainInfo where '@fild+ '= ''' +@valu+''''+'and ''' +@条件变量+''') ------解决方案-------------------- exec('select count(1) from PersonalTrainInfo where '+@fild+ '=''' +@valu+''' and '+@fild1+ '=''' +@valu1+'''') ------解决方案-------------------- 拼语句时,字符串值两端要加一个引号,但由于引号本身就字符串的边界,因此用两个引号代替一个引号.
语句:
select * from tb where col='abc'
拼语句:
set @sql='select * from tb where col=''abc'''
如果'abc'是变量值,则:
set @abc='abc'
set @sql='select * from tb where col='''+@abc+''''
前面的三个引号中,前两个引号代表拼出来的语句中有一个引号,后一个引号是前面总的字串的边界
后面四个引号,中间两个代表拼出来的字串中的一个引号,两边的两个代表字串边界.
如果要加另一个条件,则:
set @def='def'
set @sql='select * from tb where col='''+@abc+''' and col2='''+@def+''''
如果列是数值类型的,则不要加:
set @abc=5
set @sql='select * from tb where col='+@abc ------解决方案-------------------- print下看看
exec('select count(1) from PersonalTrainInfo where '+@fild+ '=''' +@valu+''' and 1=1 and '+@fild2+'=5 and '+ @fild3+'=''+@V+''' ')
字段变量用一个单引号 与sql语句接起来,字符要多2个 ------解决方案-------------------- 呵呵....
数值型的,要用转换函数.
set @sql='select * from tb where col='+convert(varchar,@abc) ------解决方案--------------------