能不能把一条记录改成多条记录的集?

Veeve 2003-10-17 06:14:46
假设有结果集(一条记录)
field_1 field_2 field_3
1 2 3
现在想得到
field
1
2
3
要求不用union实现,可以吗?
...全文
32 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
sharplee82 2003-10-30
  • 打赏
  • 举报
回复



大江的完全正确啊。
fengyeng 2003-10-18
  • 打赏
  • 举报
回复
这些不错了
ysycrazy 2003-10-18
  • 打赏
  • 举报
回复
学习!
ximxin 2003-10-18
  • 打赏
  • 举报
回复
可以建立变量吧。
Veeve 2003-10-18
  • 打赏
  • 举报
回复
用临时表和在前台建立变量的方案都是可行的。
不过
(1)用临时表本身也有性能问题,看Query1的复杂程度而定了
(2)前台建立变量取代数据集改变了我的初衷,需要改前台程序
Veeve 2003-10-17
  • 打赏
  • 举报
回复
有两个结果集,分别都只有一条记录、一个字段
假设
记录集1为:
field_name
10000

记录集2为:
field_name
9500

我现在想得到这样的结果集:
field_name
10000
500
即两条记录

问题在于我要的500是通过10000-9500得到的,而10000又是通过一个复杂的查询计算出来的。再假设得到10000的查询为Query1,得到500的查询是Query2,现在我能通过下面的方法得到所需的结果:
Query1
UNION
Query1 - Query2
上面Query1出现了两次,虽然结果正确,但我总觉得执行两次相同的复杂查询Query1性能上会欠佳,结构上也不简练,有没有办法让第二次要执行Query1的时候直接使用先前已经得到的结果?

(如果有好的答案分可以再加)
welyngj 2003-10-17
  • 打赏
  • 举报
回复

select cast(field_1 as varchar)+char(13)+char(10)+cast(field_2 as varchar)+char(13)+char(10)+cast(field_3 as varchar)+char(13)+char(10) from tablename
结果要用文本形式才能显示
伍子V5 2003-10-17
  • 打赏
  • 举报
回复
我正在想呢不用union不会
准备看高人

呵呵,大江的答案好啊
sdhdy 2003-10-17
  • 打赏
  • 举报
回复
create table #temp(field int)
go
insert #temp select field_1 from tablename
insert #temp select field_2 from tablename
insert #temp select field_3 from tablename
go
select * from #temp
drop table #temp

34,575

社区成员

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

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