sql order by子句中的多种情况

时间:2019-01-28 10:52:14

标签: mysql sql case

如何对两列或更多列进行条件排序。.我只是尝试了以下代码。有没有更好的写方法?

def comp_gradient_for_column(
    self, prod_df: pd.DataFrame
) -> None:

    """
    Compute the gradient for a given column and insert it in the dataframe

    Arguments:
        prod_df (pd.DataFrame): sub-dataframe to work on

    Returns:
        None:
    """

    values = prod_df[column_name].values
    gradients = np.gradient(values)

    for idx, val in zip(prod_df.index, gradients):
        self.df.loc[idx, "foo_column"] = val

1 个答案:

答案 0 :(得分:1)

您可以尝试以下方法:

def prime_chk(n):
        n = int(input('Number to be checked:'))
        print(n)
    for i in Range(n):
        If n % i == 0 & i != n & i != 1:
        print(i)
    else:
        Print('Well done! You have found a prime.')

它总是按升序排序,但在某些情况下为负数,这当然会导致降序。

手册https://dev.mysql.com/doc/refman/5.7/en/case.html说:

“对每个WHEN子句search_condition表达式进行求值,直到一个为真为止,这时将执行其对应的THEN子句statement_list。如果没有search_condition相等,则执行ELSE子句statement_list(如果存在)。”

这意味着按指定的顺序对表达式求值。
换句话说,仅当CASE WHEN d.receipt = 1 THEN pr.account WHEN d.receipt = 0 THEN -pr.amount WHEN c.receipt = 1 THEN pr.account ELSE -pr.amount END 为NULL时,才评估第三条件(c.receipt = 1)。