项目数据表:名称 负责人
-------------------
CCH_LY 5
SiS 3
PETER 6
REALIDEA 1
PPA 2
NBA 4
员工数据表:编号 姓名
---- ----------
1 陈有朋
4 刘燕
2 孙晓群
3 李晓峰
5 张六
6 慕容雪 题目: 定义"用户自定义函数",查询"项目数据表"的"PPA"项目的负责人"姓名"注:项目数据表的"负责人"是员工数据表的"编号"的外键如: SiS项目的负责人姓名是 李晓峰
如下是我做的,可惜有错!create function dbo.gg
(@a char)
returns char
beginreturn (select a.姓名 from 员工数据表 a inner join 项目数据表 b where a.编号=b.负责人 and b.名称=@a)endgo
select dbo.gg('PPA')
(@a varchar(100))
returns varchar(100)
beginreturn (select a.姓名 from 员工数据表 a inner join 项目数据表 b where a.编号=b.负责人 and b.名称=@a)endgo
select dbo.gg('PPA')
create function dbo.gg
(@a varchar(20))
returns varchar(50)
beginreturn (select a.姓名 from 员工数据表 a inner join 项目数据表 b where a.编号=b.负责人 and b.名称=@a)endgo
select dbo.gg('PPA')
Char型的?如果有空格之类也找不到数据的。你在查询分析器中直接运行:
select a.姓名 from 员工数据表 a inner join 项目数据表 b where a.编号=b.负责人 and b.名称=‘PPA’ 能返回数据吗?
returns varchar(1000)
as
begin
select @a=a.姓名 from 员工数据表 a inner join 项目数据表 b on a.编号=b.负责人 where b.名称=@a
return @a
endgo
select dbo.gg('PPA')
(@a char)
returns char
应该是这样的
(@a char(20))
returns char(20)
可是不知道为什么加多了一个(20)就可以了
不明白啊!!!
还有应该是
select a.姓名 from 员工数据表 a inner join 项目数据表 b where a.编号=b.负责人 and b.名称=@a