Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 访问查询中的IIf和OR_Sql_Database_Ms Access - Fatal编程技术网

Sql 访问查询中的IIf和OR

Sql 访问查询中的IIf和OR,sql,database,ms-access,Sql,Database,Ms Access,我正在分析一个旧的access查询,其中我在中得到了一个表达式,该表达式将子句作为 (((IIf([Student_id] Like 'I*','IA',IIf([Student_id] Like 'D*','IA',[Student_id]))) Like 'R*' Or (IIf([Student_id] Like 'I*','IA',IIf([Student_id] Like 'D*','IA',[Student_id]))) Like 'N*' Or (IIf([Student_id]

我正在分析一个旧的access查询,其中我在
中得到了一个表达式,该表达式将
子句作为

(((IIf([Student_id] Like 'I*','IA',IIf([Student_id] Like 'D*','IA',[Student_id]))) Like 'R*'
Or (IIf([Student_id] Like 'I*','IA',IIf([Student_id] Like 'D*','IA',[Student_id]))) Like 'N*'
Or (IIf([Student_id] Like 'I*','IA',IIf([Student_id] Like 'D*','IA',[Student_id])))=" "))

在上面的查询中,我想知道
IIf([Student_-id]Like'I*,'IA'
是什么意思,以及这三个
(IIf([Student_-id]Like'I*,'IA',IIf([Student_-id]Like'D*,'IA',[Student_-id])Like'R*
是什么意思。最后,IIf函数是一个if/else函数,其中:

  • 第一个参数是要计算的表达式
  • 第二个参数是表达式结果为true时要返回的值
  • 第三个参数是当表达式的结果为false时要返回的值
IIf(expr、truepart、falsepart)

由于truepart或falsepart也可以是一个表达式,您可以嵌套对IIf的调用,这可能很强大,但阅读起来可能会很痛苦

因此,如果我们从第一位开始,缩进显示结构:


(((
IIf([Student_id]如“I*”,
“IA”,
IIf([Student_id]如“D*”,
“IA”,
[学生id]))
像'R*'

因此,如果学生id以I开头,则结果为IA,否则结果为评估,如果学生id以D开头,则结果为IA,否则结果为学生id

对表达式求值后,结果是否以R开头

相同,但进行比较以查看结果ID是否以N开头

相同,但正在比较以查看结果ID是否为“”

因此,讨厌的嵌套IIf调用是一个过滤器,用于排除以I或D开头的学生ID


从根本上说,这只是一团乱麻。

IIf函数是一个if/else函数,其中:

  • 第一个参数是要计算的表达式
  • 第二个参数是表达式结果为true时要返回的值
  • 第三个参数是当表达式的结果为false时要返回的值
IIf(expr、truepart、falsepart)

由于truepart或falsepart也可以是一个表达式,您可以嵌套对IIf的调用,这可能很强大,但阅读起来可能会很痛苦

因此,如果我们从第一位开始,缩进显示结构:


(((
IIf([Student_id]如“I*”,
“IA”,
IIf([Student_id]如“D*”,
“IA”,
[学生id]))
像'R*'

因此,如果学生id以I开头,则结果为IA,否则结果为评估,如果学生id以D开头,则结果为IA,否则结果为学生id

对表达式求值后,结果是否以R开头

相同,但进行比较以查看结果ID是否以N开头

相同,但正在比较以查看结果ID是否为“”

因此,讨厌的嵌套IIf调用是一个过滤器,用于排除以I或D开头的学生ID


基本上,这只是一个混乱。

所以讨厌的嵌套IIf调用是一个过滤器,用于排除以I或D开头的学生ID
。我理解这一行,但仍然与
相混淆,如果学生ID以I开头,那么IA
。请解释一下。
那么讨厌的嵌套IIf调用是一个过滤器,用于排除学生ID that以I或D开头。我理解这一行,但仍然与
混淆。如果学生ID以I开头,那么IA
。请解释一下。