Python 多选择案例SQL
我在一个SQL数据库中有一列,在计算了不同的条件后,我将通过一些计算来更新它 例如:Python 多选择案例SQL,python,sql,python-2.7,sqlite,Python,Sql,Python 2.7,Sqlite,我在一个SQL数据库中有一列,在计算了不同的条件后,我将通过一些计算来更新它 例如: If A > 5: C1 = 15 else: C1 = 0 If B > 7: C2 = 24 else: C1 = 37 If C < 14: C3 = 24 else: C3 = 50 Result = C1 + C2 + C3 A、 B和C是来自其他列的值 所以,当我同时评估一些条件时,我不能使用“Case-When-COND
If A > 5:
C1 = 15
else:
C1 = 0
If B > 7:
C2 = 24
else:
C1 = 37
If C < 14:
C3 = 24
else:
C3 = 50
Result = C1 + C2 + C3
A、 B和C是来自其他列的值
所以,当我同时评估一些条件时,我不能使用“Case-When-CONDITION-Then-RESULT-Else-RESULT2-End”
哪种方法更好地解决此类查询?我不能逃避使用“如果,否则”
编辑
我想用Python和SQL来实现这一点,但是当我有15个条件需要求值时,继续使用多个“CASE-when”就变得非常困难了
Result = ('UPDATE DB1 SET ColumnToCalcul = '
'(CASE WHEN'
'(SUBSTR(Partnumber, 2, 2) = "57" OR SUBSTR(Partnumber, 2, 2) = "44" OR Table1.A > 0) '
'THEN '
'(SELECT Column1 FROM Table1 WHERE Table1.Column2= "DOLLAR" AND Table1.Column3 <= Table3.Diametre_max AND Table1.Diametre >= Table3.Diametre_min) '
'ELSE '
'CASE WHEN '
'(SUBSTR(Partnumber, 2, 2) = "49" OR SUBSTR(Partnumber, 2, 2) = "51" OR Table1.A > 57) '
'THEN '
'(SELECT Column2 FROM Table1 WHERE Table1.Column2= "DOLLAR" AND Table1.Column3 <= Table3.Diametre_max AND Table1.Diametre >= Table3.Diametre_min) '
'ELSE '
'NULL '
'END)')
仅在Python中:
def MyCalc(a, b, c):
if a > 5:
...
return 42
db.create_function("MyCalc", 3, MyCalc)
db.execute("UPDATE DB1 SET ColumnToCalcul = MyCalc(ThisColumn, ThatColumn, etc);")
从表名称中选择列1,其中A>5或B>7或CHonestly,我不知道确切的问题是什么。你发布的伪代码到底是什么?您是尝试查找一些sql查询,还是使用Python解决它?为什么不能使用多个case语句?你能粘贴实际的代码吗?我已经更新了post,如果我做了很多函数,我能把每一个函数的结果求和,并用这个求和的结果更新列吗?这个函数的行为和其他函数一样。