SQLAlchemy中使用case查找属性对应的常量值

问题大致描述:

我们在数据库保存数据的时候为了节省空间,经常使用数字来保存经常出现的字符串,例如我们使用数字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

    原文作者:海贼之路飞
    原文地址: https://www.jianshu.com/p/161ef132a957
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞