簡體   English   中英

多項選擇-相同的表格

[英]MULTIPLE SELECTS - SAME TABLE

開始...

我在名為MyTable的表中有5條記錄,其中有一個名為Se的字段。 5條記錄包含以下值(1-5):

se=1 se=2 se=3 se=4 se=5

我希望將記錄返回給我,如下所示:

SELECT * FROM MyTable WHERE se >= 3
UNION
SELECT * FROM MyTable WHERE se < 3
ORDER BY se ASC

我的目標是將記錄返回為:

3,4,5,1 2

但我自然會...

1,2,3,4,5

你能幫助我嗎? MSSQL Server可以做到這一點嗎?

在此先感謝您的協助。

嘗試這個

SELECT 1, * FROM MyTable WHERE se >= 3
UNION ALL
SELECT 2, * FROM MyTable WHERE se < 3
ORDER BY 1, se ASC

您可以在排序中使用單選和條件:

select *
from MyTable
order by (case when se >= 3 then 0 else 1 end), se

(不需要在括號中加上括號,我只是添加了它們以使代碼更清楚。)

如果您正在尋找針對特定情況的黑客:

SELECT * FROM MyTable ORDER BY (se + 2) % 5

PostgreSQL上的示例:

$ WITH MyTable(se) AS (VALUES
$     (1), (2), (3), (4), (5)
$ )
$ SELECT * FROM MyTable ORDER BY (se + 2) % 5;
 se
----
  3
  4
  5
  1
  2
(5 rows)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM