在需要按字母顺序显示的国家/地区列表中,您需要将美国放在列表顶部.你怎么会这样?
我回答说,我将有一个表格结构,使美国处于id-0.其他国家按字母顺序列出.
所以当我从桌子上拿走时,我会做一个" SELECT CountryName from tableOfCountries ORDER by ID
"
我不确定面试官是否想听到这个.所以我建议用美国作为第一个元素来填充国家数组的另一个选项.然后将从查询的结果集中填充其余元素.
"SELECT CountryName FROM tableOfCountries WHERE countryName != 'US' ORDER by COUNTRY_NAME".
Run Code Online (Sandbox Code Playgroud)
这将确保美国不会被选中两次.
面试官对此选项也不满意.所以他问我是否还有其他选择.然后我在网络服务器上用一个值列表说了一个文本文件.
你有其他任何你能想到的选择吗?
kev*_*v22 10
在country表中有另一个int列,称为precedence.
为美国分配一个大于1的优先级,并将所有其他国家/地区保留为0.
您的SQL将如下所示:
select Name from countries
order by precedence desc, name asc
Run Code Online (Sandbox Code Playgroud)
如果需要,这将允许您稍后进行缩放.
通常类似于:
SELECT
CountryName
from tableOfCountries
ORDER by
(case when CountryName = 'US' then 0
else 1 end) asc, CountryName asc
Run Code Online (Sandbox Code Playgroud)