数据库group by 问题
select*frombook查出结果idnametype1《体育科学》科学类型1《体育科学》体育类型想用groupby分组id,使查询结果是1《科学体育》科学类型,体育...
select * from book查出结果
id name type
1 《体育科学》 科学类型
1 《体育科学》 体育类型
想用group by分组 id,
使查询结果是 1 《科学体育》 科学类型,体育类型
sql server 2000 展开
id name type
1 《体育科学》 科学类型
1 《体育科学》 体育类型
想用group by分组 id,
使查询结果是 1 《科学体育》 科学类型,体育类型
sql server 2000 展开
3个回答
展开全部
sqlserver:写一个函数然后调用
第一步:function [dbo].[fun_type](@id "id的类型",name "name的类型")
returns varchar(1000)
as
begin
declare @temp varchar(1000)
set @temp = ''
select @temp = @temp+','+type from book where id = @id and name = @name set @temp = stuff(@temp,1,1,'')
return @temp
end
第二步:调用函数
select id,name,fun_type(id,name) as type from book group by id,name
查询出来的结果为:
id name type
1 《体育科学》 科学类型,体育类型
第一步:function [dbo].[fun_type](@id "id的类型",name "name的类型")
returns varchar(1000)
as
begin
declare @temp varchar(1000)
set @temp = ''
select @temp = @temp+','+type from book where id = @id and name = @name set @temp = stuff(@temp,1,1,'')
return @temp
end
第二步:调用函数
select id,name,fun_type(id,name) as type from book group by id,name
查询出来的结果为:
id name type
1 《体育科学》 科学类型,体育类型
莱伯泰科
2024-10-28 广告
2024-10-28 广告
LabTech Group,即北京莱伯泰科仪器股份有限公司,是业界领先的实验室科学仪器与解决方案提供商。我们专注于分析测试仪器的研发、生产和销售,致力于为全球科研工作者、高校及企业实验室提供高性能、高稳定性的产品与服务。通过持续的技术创新与...
点击进入详情页
本回答由莱伯泰科提供
展开全部
你用的是什么数据库,是oracle,还是SQLSERVER?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接给你个sql吧,
select s1.id,s1.name,concat(s1.type,s2,',','s2.type) as type from book s1 left join book s2 where s1.type <>s2.book group by s1.id;
运用concat字符串函数和链表查询,只不过,你这个表的设计应该好好想想,这样不是很好,很多冗余,就两条记录,你就重复了两个字段的值。
select s1.id,s1.name,concat(s1.type,s2,',','s2.type) as type from book s1 left join book s2 where s1.type <>s2.book group by s1.id;
运用concat字符串函数和链表查询,只不过,你这个表的设计应该好好想想,这样不是很好,很多冗余,就两条记录,你就重复了两个字段的值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询