我用这条语句 不行
select top 1 ID from [Hot] where Show = 'True' and [Hot].UserClass in (select top 1 [User].UserClass from [User] where UserID = 'Temp') order by ID desc
但是这两条分开可以 这是为什么?
select top 1 UserClass from [User] where UserID = 'Temp'
select top 1 ID from [Hot] where Show = 'True' and [Hot].UserClass in (@UserClass) order by ID desc
当前是这样
select top 1 @UserClass = UserClass from [User] where UserID = 'Temp'
Temp 这个用户下面的 UserClas 的值是 'A','B','C'
我取出来到 变量@UserClass里边以后赋值
set @UserClass = ''''''+replace(@UserClass,',',''',''')+''''''
把@UserClass 的值赋成 '''A'',''B'',''C'''
然后用这句
select top 1 ID from [Hot] where Show = 'True' and [Hot].UserClass in ('+@UserClass+') order by ID desc
这样还是不行。。
我如果直接用
select top 1 ID from [Hot] where Show = 'True' and [Hot].UserClass in ('A','B','C') order by ID desc
就可以
|