问题大致描述:
我们在数据库保存数据的时候为了节省空间,经常使用数字来保存经常出现的字符串,例如我们使用数字1代表数学2代表英语。但是,当我们使用SQL或者SQLAlchemy查出来的数据也是数字,如果我们想得到对应的科目可能就要另想办法,今天我给大家介绍一下我使用的方法。
在使用SQL查询的时候Case具有两种格式。简单Case函数和Case搜索函数。
–简单Case函数
CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他' END
–Case搜索函数
CASE WHEN sex = '1' THEN '男'
WHEN sex = '2' THEN '女'
ELSE '其他' END
当我们使用SQLAlchemy时候
case(
[
(users_table.c.name == 'wendy', 'W'),
(users_table.c.name == 'jack', 'J')
],
else_='E'
)
最后有默认指定值
具体使用位置为with_entities内部可以直接返回对应结果
参考链接:
官网:http://docs.sqlalchemy.org/en/rel_0_9/core/sqlelement.html#sqlalchemy.sql.expression.case
博客:
http://www.cnblogs.com/clphp/p/6256207.html