[英]variables in SQL for monetdb
我很困惑在MonetDB中是否可以使用標志符變量。 它是標准SQL還是僅mySQL? (見例如這個答案在這里SO)MonetDB聲稱支持SQL:2003(全功能列表在這里 ,我很難解析),但是這是他們在說什么變數。
在MonetDB中,以下行因抱怨意外符號而失敗:
但是有辦法進行這項工作嗎? 我看不到將SET
(在DECLARE
之后)與SELECT
。
SELECT @firstq := QUANTILE(share26_2007,0.25) FROM sys.share26_2007;
(然后,以下是預期的用例:)
SELECT peorglopnr, CASE WHEN share26_2007 < @firstq THEN 1
正如注釋中已經指出的那樣, @
變量不是標准的SQL。
使用DECLARE
和SET
將起作用:
DECLARE firstq double;
SET firstq = ( SELECT quantile(share26_2007, 0.25) FROM share26_2007 );
SELECT peorglopnr, CASE WHEN share26_2007 < firstq THEN 1 .....
筆記:
share26_2007
,該表具有一列share26_2007
。 我遵循這個假設。 firstq
聲明為double
。 您的示例未指定列share26_2007
的類型。 相應地更改變量類型。 quantile
在MonetDB中似乎無法正常工作(請參閱https://www.monetdb.org/bugzilla/show_bug.cgi?id=4076 ),但這與您的問題無關。 上面的語法有效(您可能要通過用sys.quantile
替換quantile
來驗證這sys.quantile
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.