我有以下虚拟查询
SELECT * FROM dummy_table
ORDER BY CAST(number_in_string AS DECIMAL)
如何在Ecto中写出来?
答案 0 :(得分:1)
你可以order_by
这样的片段:
fragment("CAST(? as DECIMAL)", dt.number_in_string)
from(p in Post, order_by: [asc: fragment("CAST(? as DECIMAL)", p.id)])
生成以下查询:
SELECT p0。“id”,p0。“title”,p0。“user_id”,p0。“inserted_at”,p0。“updated_at”FROM“posts”AS p0 ORDER BY CAST(p0。“id”as DECIMAL )
答案 1 :(得分:0)
您可以使用type/2
。
from u in User, where: u.id == type(^"5", :integer)
生成了以下查询
SELECT u0。“id”,u0。“first_name”,u0。“last_name”,u0。“email”,u0。“encrypted_password”,u0。“inserted_at”,u0。“updated_at”FROM“users”AS u0 WHERE(u0。“id”= $ 1 ::整数)[5]