DjangoのQuerySetでSQLで言うCOALESCE(null判定してなければ他の値)をしたいとき

今回はPythonのDjangoのQuerySetでSQLで言うCOALESCE(null判定してなければ他の値)をしたいときどうすれば良いのかについてお伝えしていきます。



DjangoのQuerySetでSQLで言うCOALESCE(null判定してなければ他の値)をしたいとき

結論から言うとCoalesce関数をimportしてそのまま指定してあげましょう。
細かい仕様については公式ドキュメントの方が分かりやすいかもしれません。
https://docs.djangoproject.com/en/4.2/ref/models/database-functions/#django.db.models.functions.Coalesce

ここでは発展系の例だけ挙げようと思います。
下記の例では、TestTimeモデルについて、dateオブジェクトからの経過の秒数をannotateで取得する例です。start_2があればstart_2からdateの間の時間を取得し、start_2がなければstart_1からdateの間の時間を取得します。

個人的には意外と使う気がするので覚えておきたいですね。

終わりに

今回はPythonのDjangoのQuerySetでSQLで言うCOALESCE(null判定してなければ他の値)をしたいときどうすれば良いのかについてお伝えしていたしました。

最後までお読みいただきありがとうございます。
よろしければブログやTwitterでのシェアをお願いしております。
コメントもお待ちしております。
誤植や勘違いなどございましたらコメント欄にて教えていただけると幸いです。

Youtubeチャンネル開設いたしました。
チャンネル登録者1000人を目指しているので、良いと思った方はチャンネル登録をお願いしたいです。
https://www.youtube.com/channel/UC219XhmSRxmXltTy6COxSMw






Django

Posted by ちこ