如何在Pypika中添加常量列?定义常量列遇问题求助
在Pypika中定义常量列的正确方法
问题分析
你用PseudoColumn尝试定义字符串常量,但PseudoColumn是用来表示数据库内置伪列(如ROWID、SYSDATE这类)的,它会把输入识别为列名而非字符串常量,所以不会自动添加单引号,导致结果不符合预期。
解决方案:使用Literal类
Pypika提供的Literal类专门用来定义常量值,会自动为字符串常量添加单引号,完全匹配你的需求。
示例1:生成带别名的常量列
要得到目标SQL:
SELECT t.id, 'constant' as constant_variable FROM example_table t
对应的Pypika代码:
from pypika import Query, Literal query = Query.from_('example_table').alias('t') \ .select('t.id', Literal('constant').alias('constant_variable')) print(query)
示例2:简化的常量列查询
针对你测试的场景,要生成SELECT 'CAR' FROM "test_table",代码如下:
from pypika import Query, Literal car = Literal('CAR') query = Query.from_('test_table').select(car) print(query)
运行后会输出你期望的SQL语句。
内容的提问来源于stack exchange,提问作者Jan Krejčí
相关产品推荐
相关产品推荐

