MS SQL 数据库自己定义函数

厦门德仔
博客专家认证
2008-10-21 04:12:22
MS SQL 2000自定义函数IIF
如何实现?
...全文
144 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
mathsfan 2008-10-22
  • 打赏
  • 举报
回复
好像不大可能的,我也考虑过传入表达式,试过一些其他的方法,也从网上找过一些资料,MS不好解决!!!
厦门德仔 2008-10-22
  • 打赏
  • 举报
回复
你传入的是真假值 。
我想传入表达式在函数内判断真假.
厦门德仔 2008-10-22
  • 打赏
  • 举报
回复
我先看看行不行!
OK 接分
mathsfan 2008-10-22
  • 打赏
  • 举报
回复
if exists(select Name from sysobjects where name='fnGetValue' and type='FN')
Drop Function fnGetValue
go
create Function fnGetValue (@a numeric(18,5),@b numeric(18,5),@aa varchar(20),@bb varchar(20)) returns varchar(20)
with encryption
as
begin
declare @cc varchar(20)
if @a>@b
return @aa
else
return @bb
return @cc
end
go
select dbo.fnGetValue(1,0,'a','b') --return a
select dbo.fnGetValue(0,1,'a','b') --return b

要不这样?

mathsfan 2008-10-22
  • 打赏
  • 举报
回复
if exists(select Name from sysobjects where name='fnGetValue' and type='FN')
Drop Function fnGetValue
go
create Function fnGetValue (@b bit,@aa varchar(20),@bb varchar(20)) returns varchar(20)
with encryption
as
begin
declare @cc varchar(20)
if @b=1
return @aa
if @b=0
return @bb
return @cc
end
go
select dbo.fnGetValue(0,'a','b') --return b
select dbo.fnGetValue(1,'a','b') --return a

不知道这样写可以不?
fcuandy 2008-10-22
  • 打赏
  • 举报
回复
case when

有些特殊情况可以用 isnull + nullif 来处理。
厦门德仔 2008-10-22
  • 打赏
  • 举报
回复
我当然知道用case when
我就想写成一个函数。供以后调用
smilyvm 2008-10-21
  • 打赏
  • 举报
回复
iif(sex=0,男,女)
case when sex=0 then 男 else 女 end
flyidealism 2008-10-21
  • 打赏
  • 举报
回复
case when 可以实现,但是很麻烦的,很烦人的。
smilyvm 2008-10-21
  • 打赏
  • 举报
回复
case函数

27,582

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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