首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Access SQL IIF复杂

Access SQL IIF复杂
EN

Stack Overflow用户
提问于 2011-11-17 01:23:26
回答 5查看 2.9K关注 0票数 1

我正在尝试使用IIF语句(即:iif([major]="eet","electronic engineering technology"))将一列数据的状态更改为另一列数据的状态。

我得到了它的工作,直到我添加了一个新的专业,称为PLS,我得到了一个框,说明表达式太复杂了。

当我把它拿出来的时候,它工作得很好。对access的iif语句数量有限制吗?

代码语言:javascript
复制
Majors: IIf([Major]="EET","Electronics Engineering Technology",
IIf([Major]="DMA","Digital Media Arts Technology",
IIf([Major]="BAM","Business Administration - Management ",
IIf([Major]="Ess","Industrial Electronics Technology - Electronic Security Systems",
IIf([Major]="FMT","Facilities Management Technology",
IIf([Major]="FMTC","Facilities Management Technology Certificate",
IIf([Major]="HIT","Health Information Technology",
IIf([Major]="HSE","Human Services",
IIf([Major]="HVAC","Heating, Ventilation, Air Conditioning and Refrigeration Technology",
IIf([Major]="IENET","Industrial Electronics Technology - Computer and Networking Track",
IIf([Major]="Auto","Automotive Technology",
IIf([Major]="AT","Accounting Technology",
IIf([Major]="IETC","Industrial Electronics Technology-  Computer Track",
IIf([Major]="IETR","Industrial Electronics Technology - Railway Electronics Systems",
IIf([Major]="PLS","test","Ophthalmic Dispensing"))))))))))))))
EN

回答 5

Stack Overflow用户

发布于 2011-11-17 06:20:10

如果您在MS SQL Server上有一个后端,并通过ODBC连接表,则可以在SQL代码中使用CASE WHEN THEN END CASE语句,但在MS Access中则不能。

您可能会遇到的限制是SQL查询的堆栈深度限制:每个嵌套表达式都需要查询分析器深入一步,在某个时间点,堆栈会耗尽,然后就会失败。此外,SQL查询中的符号总数是有限制的,但这已经足够大了,在这里应该没问题。

您的解决方案的一个可能的快速克服(尽管它使您的查询实际上更慢)是将值放到单独的表中,并使用MS Access中的DLookUp(Table, Field, Criteria)函数执行查找。或者,您可以通过缩写将表连接起来,然后将查询转换为完整的表(也称为物化视图)。

票数 0
EN

Stack Overflow用户

发布于 2011-11-17 08:25:45

我将使用如下查询运行一个VBA循环

代码语言:javascript
复制
UPDATE TableName SET Major = [LongName] WHERE Major = [ShortName]

其中LongName和ShortName是参数。

但实际上,最好将缩写保留在列中,并创建一个查找表,当您想要使用长名称时,可以连接到该查找表。它在数据存储方面的效率要高得多。

票数 0
EN

Stack Overflow用户

发布于 2011-11-17 18:04:25

创建一个两列的查找表,填充您的IIF映射,然后连接到此表。这将产生优势,例如引用完整性,当这些值更容易改变表而不是所有查询时,等等。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8155918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档