我正在尝试按不按字母顺序排列的名称列表来排序项目.完成列表后,我试图按字母顺序继续其余的,而不是我最初选择的那些.
见例子:
INPUT:
print 'Results:'
select * from Geniuses
order by ('Charles Babbage',
'Albert Einstein',
'Adrien-Marie Legendre',
'Niels Henrik Abel')
Run Code Online (Sandbox Code Playgroud)
然后最后按字母顺序对其余部分进行排序......
OUTPUT:
Results:
Charles Babbage ... details
Albert Einstein ...
Adrien-Marie Legendre ...
Niels Henrik Abel ...
Arthur Cayley ...
...
Run Code Online (Sandbox Code Playgroud) 我对看起来像这样的自定义ORDER BY子句有要求
SELECT * FROM example
ORDER BY
CASE
WHEN name = 'I want this first' THEN 0
WHEN name = 'I want this second' THEN 1
WHEN name = 'We get the picture' THEN 2
ELSE 99 END ASC
Run Code Online (Sandbox Code Playgroud)
但是,此case语句已经增长,我希望能够将排序顺序重用于其他查询。
我看到我的选择是
在我看来,似乎我应该能够传递一个函数来执行排序逻辑。但是在SO和google上进行一些搜索后,我什么也找不到,并认为这也可能会帮助其他人。