access 中IIF条多件表达式的问题,我需要在表中做一个计算,用到表达式IIF,因为刚刚学习ACCESS,

access 中IIF条多件表达式的问题,我需要在表中做一个计算,用到表达式IIF,因为刚刚学习ACCESS,,第1张

条件太多的情况下应该放弃使用多层嵌套iif函数这种解决方式,因为一则表达式会非常冗长,二则嵌套层数过多可能超出数据库规格限制而报错。

建议但对创建一个运输公司代码对照表并录入相应数据,然后在SQL查询中运用DLookup函数检索出相应简码。例如建立如下代码表:

代码表

二位码一位码

XJ A

RX B

LW C

19 D

... ..

利用DLookup函数检索出相应物流公司一位简码

DLookup("一位码","代码表","二位码=Left([单号],2)")

IIF(),它按照逻辑表达式的值有一到两个值。IIF是IF-THEN-ELSE语句的紧凑表达。语法如下:

IIF(expression, if_true, if_false)

通过该函数,可以建立非常复杂的过滤字符串。例如,假定你从SQL Server的Northwind数据库中取得Employees表,下列表达式可以选出那些employeeID小于6且lastname为偶数个字符和employeeID大于6且lastname为奇数个字符的员工。

IIF(employeeID<6, len(lastname) %2 ="0," len(lastname) %2 >0)

InStr函数

返回

返回 Variant (Long),指定一字符串在另一字符串中最先出现的位置。

语法

InStr([start, ]string1, string2[,

compare])

InStr 函数的语法具有下面的参数:

部分

说明

start

可选参数。为数值表达式,设置每次搜索的起点。如果省略,将从第一个字符的位置开始。如果 start 包含

Null,将发生错误。如果指定了 compare 参数,则一定要有 start 参数。

string1

必要参数。接受搜索的字符串表达式。

string2

必要参数。被搜索的字符串表达式。

Compare

可选参数。指定字符串比较。如果 compare 是 Null,将发生错误。如果省略 compare,Option

Compare 的设置将决定比较的类型。

设置

compare 参数设置为:

常数

描述

vbUseCompareOption

-1

使用Option Compare 语句设置执行一个比较。

vbBinaryCompare

0

执行一个二进制比较。

vbTextCompare

1

执行一个按照原文的比较。

vbDatabaseCompare

2

仅适用于Microsoft Access,执行一个基于数据库中信息的比较。

返回值

如果

InStr返回

string1 为零长度

0

string1 为 Null

Null

string2 为零长度

Start

string2 为 Null

Null

string2 找不到

0

在 string1 中找到string2

找到的位置

start >string2

0

说明

InStrB 函数作用于包含在字符串中的字节数据。所以 InStrB 返回的是字节位置,而不是字符位置。

--------------------------------------

以上是instr函数的用法

将IIF转换为CASE WHEN 语句

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

转换为SQL SERVER中的CASE WHEN :

CASE WHEN A>B THEN C ELSE D END


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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存