繁体   English   中英

如何在 python 中使用 case 语句

[英]How to use a case statement in python

我有一部分代码检查零并给出通过或失败

l=[dbname,tbname,python,fact, game_table]
f_query  = "select case when count(*)=1 then 'Pass' else 'Fail' end result"
f_query += " from  qa."+row.DB_NAME
f_query += " where "+ row.Field_NAME + "=0"

如何在此代码中包含另一个 when 语句,我需要从具有 l=[dbname,tbname,python,fact, game_table] 的列表或元组中获取 row.DB_NAME 但是当它们存在时,结果应该成为'exp'。 所以,我尝试了这样的事情:

l=[dbname,tbname,python,fact, game_table]
f_query  = "select case when count(*)=1 then 'Pass' when row.DB_Name in l then 'exp'
            else 'Fail' end result"
f_query += " from  qa."+row.DB_NAME
f_query += " where "+ row.Field_NAME + "=0"

但这不起作用。 有人可以帮我弄这个吗

您可以将列表加入字符串并使用表别名将 SQL 拼接在一起:

l=[dbname,tbname,python,fact, game_table]
f_query  = "select case when count(*)=1 then 'Pass'"
f_query += " when t1 in ({}) then 'exp'".format(','.join(l))
f_query += " else 'Fail' end result"
f_query += " from qa."+row.DB_NAME+" as t1"
f_query += " where "+ row.Field_NAME + "=0"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM