sql >> データベース >  >> RDS >> PostgreSQL

DjangoORMはタプル/辞書式順序を比較します

    以下は、 annotateを使用してDjangopre3.2で機能する方法です。 (残念ながら、 output_fieldを設定するためのわずかなハックも必要です。 、値は使用されていませんが)。

      from django.db.models import F、Func、TextFieldcol_a_col_b =Func(F('col_a')、F('col_b')、function ='ROW'、output_type =TextField())col_a_col_b_from =Func (col_a_value、col_b_value、function ='ROW')filtered_queryset =queryset \ .annotate(col_a_col_b =col_a_col_b)\ .filter(col_a_col_b__gt =col_a_col_b_from)\ .order_by('col_a'、'col_b') 

    Django 3.2以降では、明らかにエイリアスを使用できます annotateの代わりに

    タプルと呼ばれるものは、実際には行コンストラクター 、つまり(col_a、col_b) ROW(col_a、col_b)と同じです

    上記は、このチケット の情報に基づいています。




    1. SQLエラー-トリガー/関数がそれを認識しない可能性があります

    2. 従業員テーブルから2番目に高い給与を見つけるにはどうすればよいですか?

    3. CSVからのSQL一括インポート

    4. 送信後にフィールド値を保持する