2个回答
展开全部
建个函数把
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
虽然只有两列,但显示的效果类似
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
写得好累,要给分哦^_^
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |