输出结果 格式化,

newman0708 2006-11-05 10:11:34
SELECT menuname
FROM MenuPilot
WHERE (itemparent = 'parent')

搜索结果是:
Items
Works
Tables
Views

有没有办法让它输出为:Items,Works,Tables,Views
...全文
143 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
newman0708 2006-11-05
  • 打赏
  • 举报
回复
非常感谢各位的回答,谢谢
dawugui 2006-11-05
  • 打赏
  • 举报
回复
create table MenuPilot(menuname varchar(10),itemparent varchar(10))

insert into MenuPilot(menuname,itemparent) values('Items','parent')
insert into MenuPilot(menuname,itemparent) values('Works','parent')
insert into MenuPilot(menuname,itemparent) values('Tables','parent')
insert into MenuPilot(menuname,itemparent) values('Views','parent')

select * into test from MenuPilot where itemparent = 'parent'
go

--创建一个合并的函数   
create function f_hb(@itemparent varchar(10))
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str = ''
select @str = @str + ',' + cast(menuname as varchar) from test where itemparent = @itemparent
set @str = right(@str , len(@str) - 1)
return(@str)
End
go


--调用自定义函数得到结果:
select distinct itemparent ,dbo.f_hb(itemparent) as 显示 from test

drop table MenuPilot
drop table test

--结果
itemparent 显示
---------- ------------------------
parent Items,Works,Tables,Views

(所影响的行数为 1 行)
dawugui 2006-11-05
  • 打赏
  • 举报
回复
SQL语句之合并行列转换

  有表rowtocol,其数据如下:
  a b
  1 1
  1 2
  1 3
  2 1
  2 2
  3 1
  如何转换成如下结果:
  a b
  1 1,2,3
  2 1,2
  3 1

  创建一个合并的函数   

  create function f_rowtocol(@a int)
  returns varchar(8000)
  as
  begin
   declare @str varchar(8000)
   set @str = ''
   select @str = @str + ',' + cast(b as varchar) from rowtocol where a = @a
   set @str = right(@str , len(@str) - 1)
   return(@str)
  End
  go
dawugui 2006-11-05
  • 打赏
  • 举报
回复
合成一列显示?

34,838

社区成员

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

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