0

我有一张国家表....

CountryID     CountryCode    CountryName
1              AF             Afghanistan
2              AX             ALAND ISLANDS
3              AL             Albania
4              DZ             Algeria etc.

我将使用它来填充网页上的下拉菜单。我想要的是能够首先出现下面的四个国家,然后让整个列表按 ASC 顺序出现在这四个国家的下面。

CountryID    CountryCode     CountryName
236            US             United States
40             CA             Canada
76             FR             France
235            UK             United Kingdom

我尝试了各种方法,但还没有得到它。

SELECT *
From [dbo].[tblCountries]
WHERE CountryID IN (236,40,76,235)
ORDER BY CountryName asc

这给了我想要的 4 个国家,但不允许我在它们下面显示另一个。

4

1 回答 1

0

您不需要 UNION 来获得结果,您可以在 ORDER BY 中使用 CASE 表达式:

select [CountryID], [CountryCode], [CountryName]
from tblCountries
order by
  case [CountryID]
    when 236 then 1
    when 40 then 2
    when 76 then 3
    when 235 then 4
    else 5
  end, [CountryName];

请参阅带有演示的 SQL Fiddle

于 2013-10-11T19:00:18.773 回答