當我的數據框中沒有任何值時,我的查詢中斷。我有數據框data1['invoice_number'],我正在將另一個 sql 作為逗號分隔列表傳遞。當我們有值時,下面的代碼可以完美運行,但當我沒有任何值時,它就會中斷。sql1 = '''selectcarrier_account, invoice_number, invoice_amount, currency, invoice_datefrom invoice_summary where invoice_number in ({})'''.format(','.join(["'{}'".format(x) for x in data1['invoice_number']]))inv_summary= pd.read_sql_query(sql1,cnx)錯誤psycopg2.errors.SyntaxError) syntax error at or near ")"LINE 2: from invoice_summary where invoice_number in ()有沒有辦法讓我仍然可以在不中斷的情況下執行此查詢。
1 回答

慕工程0101907
TA貢獻1887條經驗 獲得超5個贊
MySQL 不允許IN (). 如果您不想在列表為空時跳過查詢,您可以做的是向 SQL 列表添加一個永遠不會匹配的額外元素。
sql1 = '''selectcarrier_account, invoice_number, invoice_amount, currency, invoice_date
from invoice_summary where invoice_number in ('', {})'''.format(','.join(["'{}'".format(x) for x in data1['invoice_number']]))
添加回答
舉報
0/150
提交
取消