按顺序排除某些值并复制

时间:2014-06-03 00:23:14

标签: mysql sql

我有一个包含国家/地区的MySQL表格,例如:

  
      
  • 荷兰
  •   
  • 德国
  •   
  • 意大利
  •   
  • 比利时
  •   
  • 法国
  •   

我想按字母顺序排列此列表,但是将一个国家/地区放在首位,例如荷兰。我可以通过以下方式实现这一目标:

  

SELECT FROM FROM FROM ORDER BY Country ='Holland'DESC,Country

但是,我还希望将Holland列入字母顺序列表中,作为副本。该列表应如下所示:

  
      
  • 荷兰
  •   
  • 比利时
  •   
  • 法国
  •   
  • 德国
  •   
  • 荷兰
  •   
  • 意大利
  •   

如何实现这一目标?

2 个答案:

答案 0 :(得分:3)

复制行的最简单方法是使用UNION。

SELECT Country
FROM (SELECT 1 AS priority, Country
      FROM Countries
      WHERE Country = "Holland"
      UNION
      SELECT 2 AS priority, Country
      FROM Countries) AS subquery
ORDER BY priority, Country

答案 1 :(得分:1)

您可以使用UNION将该值附加到查询结果的顶部:

SELECT 'Holland' 
UNION ALL
SELECT Country FROM Countries ORDER BY Country ASC