动态查询,加一个条件
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)
[解决办法]
你这句没错误.