微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ms access sql - 在选择子查询中选择大小写

如何解决ms access sql - 在选择子查询中选择大小写

我有一个人多行的表格,如果标志为是,则需要获得每人一行和最大分数,以及其他内容(这只是此示例的列的片段)

数据表

qtime 标志 得分
鲍勃 第一季度 4
鲍勃 第二季度 没有 6
鲍勃 第四季度 没有 3
爱丽丝 第一季度 没有 4
爱丽丝 第二季度 是的 7
爱丽丝 第三季度 是的 9
select
    person,max(score) as maxscore,case 
       when person in (select person from data where flag = 'yes') 
          then 1 
          else 0 
    end as flagYes
from
    data
group by 
    person

这在 Microsoft sql 服务器中可以正常工作,但在 MS Access sql 中我得到

语法错误查询表达式中缺少运算符)

我可以在子查询中使用别名,如果这会让事情感觉不会引起问题,但它们不会使查询摆脱这个错误

解决方法

MS Access 不支持 case 表达式。您可以改用 IIF()

select d.person,max(d.score) as maxScore,iif(d.person in (select d2.person from data as d2 where d2.flag = 'yes'),1,0) as flagYes
from data as d
group by person

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。