我想弄清楚如何創建一個Sequel數據集,其中包含函數調用和常量作爲其select
的一部分並使用別名。我堅持正確的語法。常量的續集格式,select中的函數調用?
我試圖避免插入原始SQL,但我會如果我必須,只要我可以鏈結果數據集並引用原始SQL內的列別名。
我實際的查詢是更復雜(我沒有實際調用sin
,它只是一個函數調用的例子),但爲了便於說明,這裏有我想要在SQL做一個精簡版:
SELECT
0 AS a, -- constant
sin(t.x) AS b, -- function call with aliased column value argument
t.x AS c
FROM
T AS t
;
什麼是相當的,idomatic,續集?到目前爲止,我有:
DB[:T.as(:t)].
select(
#0 as a, # How? constant
#sin(t.x) as b, # How? function call with aliased column value argument
:t__x.as(:c)
)
很酷。順便說一句:與Sequel表達式中的順序相比,生成的SQL中SELECT的順序是否有保證?例如(在PostgreSQL上)`DB [:T ___ t] {setseed(t__id)} {random {}。as(mysort)}`[抱歉,如果這是不正確的語法]我想確保`setseed`總是發生*之前*`隨機`。 – jwfearn 2011-12-17 00:01:58