您的位置:首页 > 产品设计 > UI/UE

Only one expression can be specified in the select list when the subquery is not introduced with(求助)

2011-09-09 17:34 911 查看
BEGIN   TRAN
declare @userName varchar(100)
declare @userSurname varchar(100)
declare @i int
declare @num int
declare @sqlstr nvarchar(1000)
declare @error int
declare @CustomId  varchar(100)

set @i=1
set @num=(select COUNT(*) from (select count(userid) shuliang from dbo.Users group by name,surname having count(userid)>1) as t)
set @userName= (select top 1 name from (select top 1 name,surname from dbo.Users group by name,surname having count(userid)>1 order by name ASC) as t order by name desc)
set @userSurname=(select top 1 surname from (select top 1 name,surname from dbo.Users group by name,surname having count(userid)>1 order by name ASC) as t order by name desc)
set @sqlstr=('select * from User where name="'+CONVERT(varchar(100),@userName)+'" and surname="'+convert(varchar(100),@userSurname)+'" ')
set @i=2
while @i<=@num
begin
set @userName= (select top 1 name from (select top (CONVERT(INT,@i)) name,surname from dbo.Users group by name,surname having count(userid)>1 order by name ASC) as t order by name desc)
set @userSurname=(select top 1 surname from (select top (CONVERT(INT,@i)) name,surname from dbo.Users group by name,surname having count(userid)>1 order by name ASC) as t order by name desc)
set @sqlstr=@sqlstr+('union select * from User where name="'+CONVERT(varchar(100),@userName)+'" and surname="'+convert(varchar(100),@userSurname)+'" ')
print @i
print @sqlstr
set @i=@i+1
end

exec sp_executesql @sqlstr

set   @error   =   @@error
if   @error   <> 0
begin
print   '查询失败'
rollback   tran

end




                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  subquery list user
相关文章推荐