--1.创建一个合并的函数
create function fmerg(@id int)
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str=''
select @str=@str+'、'+[user] from 表A where groupid=@id
set @str=right(@str,len(@str)-1)
return(@str)
End
go--调用自定义函数得到结果
select distinct groupid,dbo.fmerg(groupid) from 表A
create function fmerg(@id int)
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str=''
select @str=@str+'、'+[user] from 表A where groupid=@id
set @str=right(@str,len(@str)-1)
return(@str)
End
go--调用自定义函数得到结果
select distinct groupid,dbo.fmerg(groupid) from 表A
解决方案 »
- 安装sql server2008
- sql语句如何执行查询出一个字符串加到一个字段值的结果啊
- 怎样解决MSSQL中生成SQL脚本时出现CreateFile错误
- SQL查詢時間過長導致報表不能產生
- 错误代码:5180,严重度: 22 ,具体描述:由于文件 ID %1!(位于数据库 ''%2!'' 中)无效,所以未能打开 FCB。
- 帮忙解释一下这段SQL语句
- 一个比较复杂的SQL ,请帮忙
- ★★★★★在数据库设计过程中,经常看到在字段的备注说明中些上PK,FK等字样,什么意思?
- 在WINDOWS2000下用ODBC连不上SQL SERVER 6.5和乱码问题
- 復制數據庫
- 请问可以跨服务器调用自订函数吗? 可以的话该如何调用??
- 求最高效的sql语句写法。
create function fmerg(@id int)
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str=''
select @str=@str+'、'+[user] from 表A where groupid=@id
set @str=right(@str,len(@str)-1)
return(@str)
End
go--调用自定义函数得到结果
select distinct a.groupid,dbo.fmerg(a.groupid) from 表A a
join 表B b on a.groupid = b.id where b.groupname = '教务处'
insert 表1
Select 1,1,'阿明'
Union all select 2,1,'阿江'
Union all select 3,2,'阿水'
Union all select 4,2,'阿狂'create table 表2 (id int,groupname varchar(10))
insert 表2 select 1,'教务处'
Union all select 2,'总务处'
--1.创建一个合并的函数
create function fmerg(@id int)
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str=''
select @str=@str+'、'+[user] from 表1 where groupid=@id
set @str=right(@str,len(@str)-1)
return(@str)
End
go
declare @str varchar(100),@id int,@groupn varchar(10)
set @str = '教务处、阿水'
Select @id = [id],@groupn = groupname from 表2 where charindex(groupname,@str) > 0
Select replace(@str,@groupn,dbo.fmerg(@id))
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
阿明、阿江、阿水(所影响的行数为 1 行)
create function f_merg(@gid int,@spcchr varchar(10))
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str=''
select @str=@str+@spcchr+[user] from 表A where groupid=@gid
set @str=substring(@str,len(@spcchr)+1,8000)
return(@str)
End
go--调用自定义函数得到结果,名称之间用空格分隔
select groupid,dbo.f_merg(groupid,' ') from 表A group by groupid
declare @str varchar(100),@id int,@groupn varchar(10)
set @str = '教务处、阿水、总务处'
declare cur cursor for
Select [id], groupname from 表2 where charindex(groupname,@str) > 0
open cur
fetch next from cur into @id,@groupn
while @@fetch_status = 0 and @@rowcount>0
begin
set @str = replace(@str,@groupn,dbo.fmerg(@id))
fetch next from cur into @id,@groupn
end
close cur
deallocate cur
select @str----------------------------------------------------------------------------------------------------
阿明、阿江、阿水、阿水、阿狂(所影响的行数为 1 行)