以下是数据库示例
First_name country
Andy US
Manu India
Paul Pakistan
Ramesh Pakistan
Rich India
所以,我想要的是从上表中选择所有记录并根据名称显示。 喜欢: -
我想选择首先显示其国家名称为印度以及美国,巴基斯坦之后的人名。 如何在单个SQL查询中执行此任务?
更新
我不知道有多少国家。
国家需要首先显示的内容将由用户输入。
答案 0 :(得分:0)
可能是这样的
Select * From Table1
Order By CASE WHEN country = 'INDIA' THEN 0
WHEN country = 'US' THEN 1
Esle 2
END;
或者您可以使用 FIELD
Select * From Table1 Order By FIELD(country, 'India', 'US', 'Pakistan') ;
答案 1 :(得分:0)
使用FIELD功能
试试这个:
SELECT fitst_name, country
FROM tableA
ORDER BY FIELD(country, 'India', 'US', 'Pakistan'), fitst_name
答案 2 :(得分:0)
使用CASE语句为每条记录提供排序键。 0表示国家/地区匹配,1表示不匹配,因此所需的国家/地区首先出现。
select *
from mytable
order by case when country = @country then 0 else 1 end, first_name