MS Access SQL中使用SELECT *时如何将自定义列置于原有列之后?
MS Access中让自定义列排在原有列之后的解决办法
这确实是MS Access的特有行为——当你在SELECT语句中同时使用*和显式定义的列时,Access会把显式列放在所有*对应的原有列之前,和多数数据库的行为相反。
有两种可行的解决办法:
显式列出所有原有列
直接把表中所有需要的列逐一写出,最后加上自定义列,比如:SELECT col1, col2, col3, 1 AS test FROM tableName这种方式能完全控制列的顺序,缺点是如果表结构发生变更(新增/删除列),需要手动更新查询语句。
使用子查询包装
通过子查询先获取原有所有列,再在外层添加自定义列,避免手动列所有字段:SELECT sub.*, 1 AS test FROM (SELECT * FROM tableName) AS sub这种方式无需关心表的具体列名,表结构变化时查询语句不用修改,仅需多一层子查询,在Access中可以正常执行。
内容的提问来源于stack exchange,提问作者TheMountainThatCodes
相关产品推荐
相关产品推荐

