首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要在单个实例中从sql查询中赋值

需要在单个实例中从sql查询中赋值
EN

Stack Overflow用户
提问于 2014-05-14 07:23:46
回答 3查看 54关注 0票数 2

我正在sql-server-2008-R2中执行下面的查询,它为我提供了我想要的输出(即行数),但是,我希望将结果以多列行的形式存储在一个变量中。

代码语言:javascript
复制
declare @rCount int
declare @kuri nvarchar(max)
declare @IDs nvarchar(max)

select @rCount=10

set @kuri='select top '+cast(@rCount as varchar)+' FLD295,FLD9 from tableName (nolock) ORDER BY NEWID()'

execute(@kuri)

我之前已经这样做了,但这是不同的查询,我需要将这两个查询的结果连接到一个列中(赋值和显示)。

代码语言:javascript
复制
select @IDs=CAST(isnull(@IDs ,'')as varchar)+CAST(COALESCE(fld9,',')as varchar) from table1307 (nolock) ORDER BY NEWID()
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-05-14 08:41:48

代码语言:javascript
复制
DECLARE @T1 TABLE (
    FLD9 bigint
, FLD295 nVARCHAR(max)
)

insert into @T1(,FLD295,FLD9) 
select top(@rCount) FLD295,FLD9 from tableName (nolock)
 ORDER BY NEWID()

select * from @T1
select @IDs=CAST(isnull(@IDs ,'')as varchar)+CAST(COALESCE(fld9,',')as varchar) from @T1 
票数 1
EN

Stack Overflow用户

发布于 2014-05-14 07:29:52

我觉得你错过了你能做的那张脸

代码语言:javascript
复制
declare @i int=3

select top(@i) .... –

2008确实支持动态顶级

我希望你知道结果应该是单身。,否则,这是不可能的(除非您正在执行insert into...

如果您询问如何连接( cte是jsut表,请忽略它)

票数 1
EN

Stack Overflow用户

发布于 2014-05-14 07:35:07

您可以将游标用于访问结果集:

代码语言:javascript
复制
declare @rCount int
declare @kuri nvarchar(max)
declare @IDs nvarchar(max)

declare @FLD295 int
declare @FLD9 int

select @rCount=10

set @kuri='declare cursor curs for select top '+cast(@rCount as varchar)+' FLD295,FLD9 from tableName (nolock) ORDER BY NEWID()'

exec sp_executesql @kuri

open curs
fetch from curs
into @FLD295, @FLD9

while @@fetch_status = 0
BEGIn


fetch from curs
into @FLD295, @FLD9
END

close curs
deallocate curs
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23648109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档