日期:2014-05-17  浏览次数:20420 次

动态查询,加一个条件
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)
------解决方案--------------------
引用:
如果是固定的字段呢?


SQL code
?



1

exec('select count(1) from PersonalTrainInfo where '+@fild+ '=''' +@valu+''' and TeacherNO =''' +@TeacherNO+'''')
这句话哪有错误呢?

你这句没错误.