我必须为国家/地区编写下拉查询。 但美国应该永远是第一位的。 其他国家按字母顺序排列 我尝试了以下查询
SELECT
countries_id
,countries_name
FROM get_countries
WHERE
countries_id = 138
UNION
SELECT
countries_id
,countries_name
FROM get_countries
WHERE
countries_id != 138
ORDER BY 2 ASC
答案 0 :(得分:3)
这样的事情可能是:
ORDER BY
CASE
WHEN upper(country_name) = 'USA' then '0'
ELSE lower(country_name)
END
这是一个完整的例子
create TABLE countries (country_name VARCHAR2(50));
INSERT INTO countries VALUES ('USA');
INSERT INTO countries VALUES ('India');
INSERT INTO countries VALUES ('Russia');
INSERT INTO countries VALUES ('China');
COMMIT;
SELECT country_name
FROM countries
ORDER BY
CASE
WHEN upper(country_name) = 'USA' then '0'
ELSE lower(country_name)
END
返回:
USA
China
India
Russia
答案 1 :(得分:0)
自从我使用oracle以来已经有一段时间了,但你可以试试ORDER BY countries_name = 'USA', countries_name ASC
。
<强>校正强>
抱歉没有用。我将“countries_name”错误地键入为“country_name”,因此它现在可以正常工作。
您也可以使用ORDER BY decode(countries_name, 'USA', 0, 1), countries_name ASC
。