7
如果我定義一個表像這樣使用定製列表:在cqlsh卡桑德拉CQL選擇排序
CREATE TABLE scores (
name text,
age int,
score int,
date timestamp,
PRIMARY KEY (name, age, score)
);
,做一個選擇是這樣的:
select * from mykeyspace.scores;
顯示的結果似乎總是排序「年齡',然後'升序'自動按升序排列,無論輸入數據排序如何(如預期的那樣,返回行不按分區鍵'名稱'排序)。我有以下問題:
SELECT
是否自動按集羣鍵對返回行進行排序?- 如果是,使用
SELECT
時使用ORDER BY
子句的目的是什麼? - 如果否,我怎樣才能得到返回的行按聚類鍵排序,因爲cql不允許
ORDER BY
在select *
?
米哈伊爾,我已經閱讀過這些文件。他們沒有真正回答我的問題。鑑於我如何定義我的表格,排序是否自動?如果是,爲什麼我仍然需要SELECT語句中的ORDER BY子句(如果我需要按降序排序,我想我仍然需要它)? – ptmoy2
是的,排序是「自動」。您的數據以物理方式存儲在排序順序中,由我們的聚類列或y CLUSTERING ORDER(如果存在)定義。 ORDER BY允許您在ASC和DESC之間切換 –
感謝Mikhail。因此,既然數據已經自動按升序排序,那麼除非我想按降序排序 - 正確嗎?在SELECT中使用ORDER BY是沒有道理的。 – ptmoy2