我有一個表,其中有一組具有開始標籤和結束標籤的路線。每行都有一個「progres」列,它是應用全球「order by」子句的列,最後是一個選擇列,用於指示必須訂購哪些標籤類型(奇數,偶數或全部)。 如果LabelStart> LabelEnd => ORDER BY ASC另外通過DESC有條件的訂單由
例如這裏的路線路徑
Routes ID RouteID, Progres, LabelStart, LabelEnd Type 1 1 5 1 21 O 2 1 10 10 2 E 4 2 15 2 25 A 5 3 20 1 11 O 6 3 22 4 10 E 7 4 30 5 11 O 8 4 31 2 12 E
這裏屬於路線
Points PoinID RouteID, Label 1 1 3 2 1 2 4 1 1 5 1 8 6 1 5 7 1 6 8 1 9 9 1 21 10 1 10 11 1 11 12 2 1 13 2 2 14 2 12 15 2 3 16 2 25 17 2 14 ...
點我需要的是一個表中所有點由Routes Proges全局排序,由Even,Odd或All根據類型分組,最後由ASC按LabelClass> LabelEnd else DESC排序。結果是768,16:
ID RouteID, PointID 1 1 4 2 1 1 4 1 6 5 1 8 6 1 11 7 1 9 8 1 10 9 1 5 10 1 7 11 1 2 12 2 13 13 2 15 ...
的分組可能很容易與'CASE'語句進行處理。儘管動態地切換排序順序,但您可能必須使用PL/PgSQL函數,該函數使用'EXECUTE format(...)USING ...'生成查詢。 – 2013-03-11 22:41:56
爲什麼不能按照子句/ – 2013-03-11 22:54:09