Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 多选择案例SQL_Python_Sql_Python 2.7_Sqlite - Fatal编程技术网

Python 多选择案例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

我在一个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-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,如果我做了很多函数,我能把每一个函数的结果求和,并用这个求和的结果更新列吗?这个函数的行为和其他函数一样。