IIF在vb中表示什么意思?

IIF在vb中表示什么意思?,第1张

根据表达式的值,来返回两部分中的其中一个。

语法: IIf(expr, truepart, falsepart)

参数:

expr,必要参数。用来判断真伪的表达式。

truepart,必要参数。如果 expr 为 True,则返回这部分的值或表达式。

falsepart,必要参数。如果expr为 False,则返回这部分的值或表达式。

举例:

a=iif(a=1,2,3)相当于:

Ifa=1Then

a=2

Else

a=3

EndIf

可以这样写4层嵌套IIF函数表达式:

iif(isnull(BSS项目编号) and isnull(固网项目编码),"BSS和固网项目均为空",iif(isnull(BSS项目编号) and not isnull(固网项目编码),"新建工程无BSS号",iif(not isnull(BSS项目编号) and isnull(固网项目编码),"开户无BSS编号",iif(BSS项目编号=固网项目编码,"匹配成功","项目乱挂"))))

写成SQL查询语句:

select BSS项目编号,固网项目编码,

iif(isnull(BSS项目编号) and isnull(固网项目编码),'BSS和固网项目均为空',

iif(isnull(BSS项目编号) and not isnull(固网项目编码),'新建工程无BSS号',

iif(not isnull(BSS项目编号) and isnull(固网项目编码),'开户无BSS编号',

iif(BSS项目编号=固网项目编码,'匹配成功','项目乱挂')))) 

as 项目使用情况 from 表名

特别提示:

楼主要求[固网项目编码]的值为空那么输出的值为“开户无BSS编号”,我觉得似乎不太准确,判断为“无固网项目编码”也许更准确;

另外还存在[BSS项目编号]和[固网项目编码]两项同时为空的情况,提问里并未提及,但是表达式必须考虑这种情况存在的可能,因此我在上述表达式里也做了相应判断。

SELECT CASE LEN([Name]) WHEN 2 THEN LEFT([Name],1)+' '+RIGHT([Name],1) ELSE [Name] END AS BName,

CASE LEN(fqName) WHEN 2 THEN LEFT(fqName,1)+' '+RIGHT(fqName,1) ELSE fqName END AS fqBName,

CASE LEN(mqName) WHEN 2 THEN LEFT(mqName,1)+' '+RIGHT(mqName,1) ELSE mqName END AS mqBName FROM db_2011


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

原文地址:https://54852.com/sjk/9891159.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存