您如何在下拉列表中保留特定国家/地区?

abh*_*bhi 7 .net c# oracle

在需要按字母顺序显示的国家/地区列表中,您需要将美国放在列表顶部.你怎么会这样?

我回答说,我将有一个表格结构,使美国处于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)

如果需要,这将允许您稍后进行缩放.

  • @Adam:为什么你认为这不太可能?如果OP的客户群扩大到其他国家也是主要客户,那么人们可能也希望将这些国家放在首位.例如,我经常看到几个国家排名靠前的下拉,例如美国,加拿大,英国,法国,德国,然后只有在此之后所有其他国家按字母顺序排列. (2认同)

Ada*_*son 8

通常类似于:

SELECT 
    CountryName 

from tableOfCountries 

ORDER by 
    (case when CountryName = 'US' then 0 
     else 1 end) asc, CountryName asc
Run Code Online (Sandbox Code Playgroud)