执行下面的语句出错,请求帮助(在线等)?

[复制链接]
查看11 | 回复4 | 2008-4-7 19:47:40 | 显示全部楼层 |阅读模式
--创建一个合并的函数
alter function func_row_to_column(@p_table_no varchar(20),@p_in_no varchar(20),@p_model_no varchar(20),@p_tran_sql varchar(1000))
returns varchar(8000)
as
begin
declare @str varchar(1000)
set @str = ''
set @str = @str +@p_tran_sql
Exec('select ' + @p_tran_sql + ' from'+ @p_table_no)
-- + ' where in_no = '+ @p_in_no+' and model_no= '+ @p_model_no )
set @str = right(@str , len(@str) - 1)
return(@str)
End
go
(在函数内不正确地使用了 'EXECUTE'。)
回复

使用道具 举报

千问 | 2008-4-7 19:47:40 | 显示全部楼层
hxd001_810在吗?我的qq(382562507),想跟你交个朋友.
回复

使用道具 举报

千问 | 2008-4-7 19:47:40 | 显示全部楼层
--有表t,其数据如下:
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 table tb
(
a int,
b int
)
insert into tb(a,b) values(1,1)
insert into tb(a,b) values(1,2)
insert into tb(a,b) values(1,3)
insert into tb(a,b) values(2,1)
insert into tb(a,b) values(2,2)
insert into tb(a,b) values(3,1)
go
--创建一个合并的函数
create function f_hb(@a int)
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str = ''
select @str = @str + ',' + cast(b as varchar) from tb where a = @a
set @str = right(@str , len(@str) - 1)
return(@str)
End
go
--调用自定义函数得到结果:
select distinct a ,dbo.f_hb(a) as b from tb
drop table tb
回复

使用道具 举报

千问 | 2008-4-7 19:47:40 | 显示全部楼层
LZ你的函数里那么多变量是做什么用的?
回复

使用道具 举报

千问 | 2008-4-7 19:47:40 | 显示全部楼层
飘过~~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行