怎么把查出的多个结果赋给一个变量

qqyatou 2009-09-05 11:58:36
我在写存储过程的时候用到

declare @productid varchar(300)
set @productid=(select from vw_bill_list)
报错 服务器: 消息 512,级别 16,状态 1,过程 BILL_FEE,行 31
子查询返回的值多于一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。


执行select product from vw_bill_list 结果是
product
45
46

结果有多个不能用set赋值,
我想要的结果是这样@productid='45,46'

帮帮忙这怎么写
我用的SqlServer
...全文
113 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sky22222 2012-04-17
  • 打赏
  • 举报
回复
想问个问题,那么对这个值,怎么取出来,sql 好像没有split函数
怎么取对应的值。知道的说声,谢谢
sky22222 2012-04-17
  • 打赏
  • 举报
回复
呵呵,这个好用
qqyatou 2009-09-05
  • 打赏
  • 举报
回复
谢谢各位前辈,解决了
华夏小卒 2009-09-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yang_ 的回复:]
SQL codedeclare@productidvarchar(300)select@productid=isnull(@productid+',','')+cast(productasvarchar(20))from vw_bill_listprint@productid
[/Quote]

学习
ks_reny 2009-09-05
  • 打赏
  • 举报
回复
理解錯誤
修改一下

declare @productid varchar(300)
select @productid =product from vw_bill_list
xiequan2 2009-09-05
  • 打赏
  • 举报
回复
declare @productid varchar(300)
select @productid=isnull(@productid+',','')+ ltrim(product) from tb
print @productid
--小F-- 2009-09-05
  • 打赏
  • 举报
回复
--支持海爷
declare @productid varchar(300)
select
@productid= isnull(@productid+',','') + cast(product as varchar(20))
from
vw_bill_list
exec(@productid)
Yang_ 2009-09-05
  • 打赏
  • 举报
回复
declare @productid varchar(300)
select @productid= isnull(@productid+',','') + cast(product as varchar(20))
from vw_bill_list

print @productid
oyctzl 2009-09-05
  • 打赏
  • 举报
回复
用游標了
ks_reny 2009-09-05
  • 打赏
  • 举报
回复

declare @productid varchar(300)
set @productid=('select * from vw_bill_list')
华夏小卒 2009-09-05
  • 打赏
  • 举报
回复
好像要用游标

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧