access,switch函数

发布网友 发布时间:2022-04-19 15:19

我来回答

3个回答

热心网友 时间:2022-04-12 14:47

试试3<[x]<=10分开写
Switch([x]<3,0.15,3<[x] and [x]<=10,0.1,[x]>=10,0.05)

热心网友 时间:2022-04-12 16:05

Switch([x]<3,0.15,[x]<=10,0.1,[x]>10,0.05)

热心网友 时间:2022-04-12 17:40

access的switch函数:
Access中没有Case When的用法,所以对于某些筛选比较就显得很吃力。不过还好,Access中有一个Switch可以解决这个问题。Switch 的语法是:SWITCH( case_1, result_1[, case_2, result_2...])。Switch的计算顺序为从左到右,将返回第一个为true的case对应的result。ACCESS对Switch有预编译(基本能够写进ACCESS的Sql都有预编译,ACCESS不支持Execute(SqlString)的用法),所以Switch中的条件和结果不能有逻辑错误和语法错误,否则不能执行。
实例:表tUser中有字段sex Text(1),用于存储用户性别,其中,如sex='m',用户为男性;sex='f',用户为女性;其他情况为保密。为了便于sql语句的说明,我们假设还有其他两个字段,userid和username。
在SqlServer中,如果要在搜索结果中直接显示性别的名称SexName(不是m/f之类的代码),使用Case When很方便。

SELECT UserID,
UserName,
SexName = WHEN LCASE(Sex)
CASE 'm' THEN N'男'
CASE 'f' THEN N'女'
ELSE N'保密' END
FROM tUser

ACCESS不支持WHEN CASE的用法。虽然不那么灵巧,但是用Switch可以解决这个问题。
SELECT UserID,
UserName,
SWITCH(
Sex = 'f', '男',
Sex = 'm', '女',
True, '保密'
) AS SexName
FROM tUser
上述中最后一个Case为true,该用法类似于When Case语法中的Else。
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com