读书人

改个SQL 话语

发布时间: 2013-03-22 09:49:50 作者: rapoo

改个SQL 语句

exec('SELECT * FROM DB_User_Learn WHERE UserID LIKE '+@U+' OR UserID IN ('+@UserID+')')

上面这样的一句语言 我对 @U 传的值是 %0019% @UserID 为 空字符串

运行的时候提示 0019附近有语法错误,请高手指点下要怎么改,谢谢了
[解决办法]
应该是@UserID 为 空字符串时 会出异常,可以试试这样

string sql = "SELECT * FROM DB_User_Learn WHERE UserID LIKE %" + @U+ "%";
if(@UserID != "")
sql += " or UserID IN ("+@UserID+")";

注:@U 只需要传具体值就可以了,两个百分号已放入SQL中;也可以用你之前的。。。
[解决办法]
declare @sql varchar(8000)

set @sql = 'SELECT * FROM DB_User_Learn WHERE UserID LIKE ''%'+@U+'%'''
set @sql = @sql + case when @UserID='' then '' else ' OR UserID IN ('+@UserID+')' end

exec(@sql)

读书人网 >SQL Server

热点推荐