【发布时间】:2021-09-15 17:07:11
【问题描述】:
有谁知道为什么以下 SqlAlchemy CASE 语句失败并显示以下错误消息:
casePrimaryApprover = case(
[
(and_(
(agreement.approving_official_id.is_not(None)),
(approver.current_flag == 'Y'),
(approver.inactive_date.is_(None)),
(approver.organizationalstat == 'EMPLOYEE'),
or_(
(participatingIc.ic_nihsac == func.substr(approver.nihsac, 1, 3)),
(externalPeoplePrimaryApprover.id.is_not(None))
)
)), 'Y'
],
else_ = 'N'
)
错误
casePrimaryApprover = case(
File "<string>", line 2, in case
File "C:\gitForVS\sm_telework\venv\Lib\site-packages\sqlalchemy\sql\elements.py", line 2844, in __init__
whenlist = [
File "C:\gitForVS\sm_telework\venv\Lib\site-packages\sqlalchemy\sql\elements.py", line 2844, in <listcomp>
whenlist = [
ValueError: too many values to unpack (expected 2)
注意这里要对应SQL
CASE
WHEN
agreement_t_1.approving_official_id is not null and
ned_person_t_2.current_flag = 'Y' and
ned_person_t_2.inactive_date is null and
ned_person_t_2.organizationalstat = 'EMPLOYEE' and
(pi.ic_nihsac = substr(ned_person_t_2.nihsac,1,3)
or
epApprover.id is not null)
THEN
'Y'
ELSE
'N'
END AS APPROVER1,
【问题讨论】:
标签: flask sqlalchemy flask-sqlalchemy