如何在数据库查询中替换NULL?

问题描述 投票:1回答:1

问题在于从数据库中的查询结果:

cur1 = con.cursor()
result1 = ("SELECT DDATE FROM TABLE(NULL)")
cur1.execute(result1)
result1 = cur1.fetchone()

查询结果-43949.0

需要将结果放入下一个查询,替换其中的前两个“ NULL”值,然后选择:

cur = con.cursor()
POS = (SELECT ST1,ST2 FROM SOMETABLE(**NULL**, **NULL**, NULL, NULL)")
cur.execute(POS)
POS = cur.fetchall()

结果应该是成功的请求,如下所示:POS = (SELECT ST1,ST2 FROM SOMETABLE(43949.0, 43949.0, NULL, NULL)")

python sql python-3.x firebird firebird2.5
1个回答
0
投票

如果要使用第一条语句的输入执行第二条语句,则可以使用parameterized statement,并在p​​ython代码中将参数从第一条传递到第二条。

例如,类似这样的东西:

cur = con.cursor()
cur.execute('select output1 from step1(null)')
result1 = cur.fetchone()

cur.execute('select output1, output2 from step2(?, ?, null, null)', (result1[0], result1[0]))
result2 = cur.fetchall()

或者,您可以将存储过程连接在一起,以在一个查询中执行此操作。例如:

select s2.*
from step1(null) s1
cross join step2(s1.output1, s1.output1, null, null) s2

与普通表相反,将cross join与存储过程一起使用不会产生叉积,而是表现为横向联接。

© www.soinside.com 2019 - 2024. All rights reserved.