sql数据库中建立一个视图怎样把一张表的列值转换成另一张表的行值

a表中三列:ID数量仪器... a表中三列:ID 数量 仪器 展开
 我来答
百度网友4daa2c9
2011-08-05 · 超过13用户采纳过TA的回答
知道答主
回答量:40
采纳率:0%
帮助的人:31.4万
展开全部
建个函数把
CREATE FUNCTION GetYQStringFromID(@AID nvarchar(100))
RETURNS nvarchar(1024)
AS
BEGIN
declare @Str varchar(1024)
set @str=''
select distinct @Str=@Str + 仪器 +'*'+cast(数量 as nvarchar(5))+' '
from a表
where ID=@AID
return @Str
END

然后查询
select ID,GetYQStringFromID(ID)as 仪器
from (select distinct ID from a表)a

效果为
ID 仪器
120 A*2 C*1 D*2;
330 B*3
112 A*2

虽然只有两列,但显示的效果类似
更多追问追答
追问
但是,我要求显示在不同的列中的,有办法吗?
追答
办法当然有,如果仅用SQL,列数可能只能固定了,例如
CREATE FUNCTION GetYQFromIndex(@AID nvarchar(100),@index int)
RETURNS nvarchar(1024)
AS
BEGIN
declare @Str varchar(1024)
select *,IDENTITY(int,1,1) as indexid into #t
from (select * from a表 where ID=@AID)a
select @Str=仪器 from #t where indexid=@index
drop table #t
return @Str
END
然后查询
select ID,GetYQFromIndex(ID,1)as 仪器1
,GetYQFromIndex(ID,2)as 仪器2
,GetYQFromIndex(ID,3)as 仪器3
...
from (select distinct ID from a表)a
写得好累,要给分哦^_^
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
首初珍余启
2019-10-23 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:33%
帮助的人:640万
展开全部
获取视图名称树懒已经实现了,下面就是获取视图中所有列的名称了,其实也是用一句sql语句就可以实现了,有兴趣也来试试吧
declare
@objid
int,@objname
char(40)set
@objname
=
'[你的视图名称]'
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式