sqlserver2000中是否可以使用IIF,如果不行,那用什么函数可以代替这样的效果

sqlserver2000中是否可以使用IIF,如果不行,那用什么函数可以代替这样的效果,第1张

SQL Server 2000中没有iif函数,可以使用case when ... then ... end 代替。

例如:

case when 性别 = '男' then '先生' else ‘女士' end

将IIF转换为CASE WHEN 语句

比如:IIF(A>B,C,D)

转换为SQL SERVER中的CASE WHEN :

CASE WHEN A>B THEN C ELSE D END

依据一个逻辑表达式的值来返回两个值中的一个。

IIF(lExpression, eExpression1, eExpression2)

参数

lExpression

指定 IIF( ) 计算的逻辑表达式。

eExpression1, eExpression2

如果 lExpression 计算为真(.T.),eExpression1 被返回而 eExpression2 不被计算。如果 lExpression 计算为假(.F.) 或空(.NULL.),eExpression2 被返回而 eExpression1 不被计算。

返回值

字符型、数值型、货币型、日期型或日期时间型

说明

该函数也称作 Immediate IF,计算一个逻辑表达式然后返回两个表达式之一。如果逻辑表达式计算为真(.T.),IIF( ) 返回第一个表达式。如果逻辑表达式计算为假(.F.) 或空(.NULL.),IIF( ) 返回第二个表达式。

提示:

对于简单的条件表达式,该函数可以被用于替代 IF ... ENDIF,并且,对有条件地指定字段内容的报表和标签表达式尤其有用。IIF( ) 函数同样比等价的 IF ... ENDIF 执行得更快。

示例

下面的示例利用 IIF( ) 来检查 employee 中的 notes 字段是否为空,如果为空,显示“No notes”;否则,显示该备注字段的内容。

CLOSE DATABASES

OPEN DATABASE (HOME(2) + 'Data\testdata')

USE employee &&打开 Employee 表

CLEAR

SCAN

? IIF(EMPTY(notes), 'No notes', notes)&&空备注字段吗?

ENDSCAN


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9940543.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存