首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >接入网中开关函数的操作错误

接入网中开关函数的操作错误
EN

Stack Overflow用户
提问于 2019-12-24 15:39:32
回答 2查看 129关注 0票数 1

我一直试图在MS Access中执行以下SWITCH函数,但我一直收到以下错误:

查询表达式中的

语法错误(缺少运算符)。

我以前使用过它,它运行得很好,但是后来我收到了一个错误。

代码语言:javascript
复制
SELECT tempJoin.[cardID], tempJoin.[netSales], tempJoin.[amountRedeemed],
SWITCH (
    [netSales] <1000, "0-1000",                     
    [netSales] >=1000 AND <2000, "1000-2000",         
    [netSales] >=2000 AND <3000, "2000-3000",        
    [netSales] >=3000 AND <4000, "3000-4000",       
    [netSales] >=4000 AND <5000, "4000-5000",        
    [netSales] >=5000 AND <6000, "5000,6000",        
    [netSales] >=6000 AND <7000, "6000-7000",       
    [netSales] >=7000 AND <8000, "7000-8000",       
    [netSales] >=8000 AND <9000, "8000-9000",        
    [netSales] >=9000 AND <10000, "9000-10000",      
    [netSales] >=10000, ">10000"
    ) AS netSalesBin
    INTO tempJoin
FROM tempJoin;
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-12-24 17:08:24

正如Olivier所解释的,语法错误的出现是因为第二个比较运算符缺少比较左侧的字段:

代码语言:javascript
复制
[netSales] >= 1000 AND ??? < 2000 
                        ^--------------- Missing field

但是,请注意,实际上只需要进行一次比较,因此可以将代码简化为:

代码语言:javascript
复制
select 
    tempjoin.[cardid], 
    tempjoin.[netsales],
    tempjoin.[amountredeemed],
    switch (
        [netsales] <  1000, "0-1000",
        [netsales] <  2000, "1000-2000",
        [netsales] <  3000, "2000-3000",
        [netsales] <  4000, "3000-4000",
        [netsales] <  5000, "4000-5000",
        [netsales] <  6000, "5000,6000",
        [netsales] <  7000, "6000-7000",
        [netsales] <  8000, "7000-8000",
        [netsales] <  9000, "8000-9000",
        [netsales] < 10000, "9000-10000",
        true, ">10000"
    ) as netsalesbin
into tempjoin
from tempjoin

因为,如果netsales小于1000,那么第一个测试表达式总是在第二个测试表达式之前被验证,依此类推。

票数 3
EN

Stack Overflow用户

发布于 2019-12-24 16:27:38

[netSales] >=1000 AND <2000没有正确的语法。您必须在AND之后重复列名。写

代码语言:javascript
复制
[netSales] >=1000 AND [netSales] < 2000

(其他行也一样。)

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

https://stackoverflow.com/questions/59470921

复制
相关文章

相似问题

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