标题:求助!!!关于自定义函数判断男女返回结果的错误消息!!!
只看楼主
勤奋的关键字
Rank: 1
来 自:辽宁
等 级:新手上路
帖 子:51
专家分:2
注 册:2011-10-24
结帖率:72.73%
已结贴  问题点数:5 回复次数:4 
求助!!!关于自定义函数判断男女返回结果的错误消息!!!
表BnakMoney 有4列: ID UserID Sex Money    要求自定义创建一个函数 当Sex为男时返回 Man  Sex为女时返回 Woman 。我写了这个函数然后提示我:
消息 156,级别 15,状态 1,过程 judge_sex,第 10 行 关键字 'from' 附近有语法错误。  求大神告诉我怎么回事 我刚接触 不太懂 希望能讲详细一点! 谢谢!
create function judge_sex(@Jsex char(50))
returns char
as
Begin
select @Jsex=
case sex
when '男' then 'MAN'
when '女' then 'WOMAN'
else '错误的性别'
from BankMoney
return Jsex
end;


 
搜索更多相关主题的帖子: 函数 function returns create 
2012-03-09 15:10
png
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:126
专家分:880
注 册:2010-10-6
得分:5 
create function judge_sex(@Jsex char(50))
returns char(15)
as
Begin
   declare @Jsex2 char(15)
   select @Jsex2=
   case @Jsex
     when '男' then 'MAN'
     when '女' then 'WOMAN'
     else '错误的性别'
   end
return @Jsex2
end;


select Sex, judge_sex(Sex)
from   BankMoney
2012-03-10 00:08
勤奋的关键字
Rank: 1
来 自:辽宁
等 级:新手上路
帖 子:51
专家分:2
注 册:2011-10-24
得分:0 
回复 2楼 png
谢谢!  我想请教一下 Returns 后面跟的数据类型 可以加 长度吗?  我看的知识说 returns后面只能加数据类型而不可以定义长度和精度, 我昨天晚上自己通过查找资料写出了这个自定义函数  这个是函数
Create function judge_sex(@Jsex char(50))returns char
as
Begin
select @Jsex=
case sex
when '男' then 'MAN'
when '女' then 'WOMAN'
else '错误的性别'
end
from BankMoney
return @Jsex
end;
跟你的有一些出入,但是也成功了,我想请教一下 我这个跟你写的哪个比较规范,还有 为什么 我这个 Case ---else完事之后必须加 END呢?  FROM以后的不写有问题没有呢?  我的问题可能比较小白,但是我是初学 想把基础弄的更明白些,请大大多多指点 详细点!谢谢!

[ 本帖最后由 勤奋的关键字 于 2012-3-10 11:31 编辑 ]

人生就像程序,得经过一次次的调试才会趋于简单但却完美.
2012-03-10 11:30
png
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:126
专家分:880
注 册:2010-10-6
得分:0 
我以为字符型的返回值都要给出长度, 你不妨再查下.
Case + End 是规定写法,否则出语法错误.

你写的函数最大的问题在于"from BankMoney". 语法上可能没有错误, 但通用性 "貌似"受到限制.如果另一表BankCustomer, 也有男女,难道再写个func不成? 毕竟函数回答类似 y = fun(x) 的通用问题.

既然你"想把基础弄的更明白些", 我以为自定义涵数不是初学的重点. 搞通查询, 插,删,改是最要紧的.

2012-03-12 22:46
勤奋的关键字
Rank: 1
来 自:辽宁
等 级:新手上路
帖 子:51
专家分:2
注 册:2011-10-24
得分:0 
回复 4楼 png
才来得及上网,不好意思才结贴了, 那按照你说得 From BankMoney 该怎么写 要写个参数进去吗? 增删改查那个我都学过了啊,现在学到函数 存储过程 和 触发器了..

人生就像程序,得经过一次次的调试才会趋于简单但却完美.
2012-03-16 10:43



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-362644-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019645 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved