列出姓氏,首先在首字母开头以“ C”显示,然后列出所有

时间:2018-10-10 12:11:52

标签: sql oracle

这是我的代码,不是真的。enter image description here

enter image description here

4 个答案:

答案 0 :(得分:1)

select last_name 
from employees 
order by case substr(last_name,1,1) 
              when 'C' 
              then 1 
              else 2 end

答案 1 :(得分:1)

尝试一下:

它在以'C'开头的单词之前添加一个下划线,因此它保持单词的顺序,但是,因为下划线位于'A'之前,因此将首先列出这些单词

select last_name
from employee
group by last_name
order by case 
           when upper(substr(last_name,1,1))='C' 
                 then concat('_',last_name) 
                 else last_name end

答案 2 :(得分:0)

一个粗略的解决方案可能是:

SELECT
    last_name
FROM
    employees
WHERE
    (last_name LIKE [C-Z]%)
ORDER BY
    last_name DESC

那样,我们要说的是姓氏以任何字母C-Z开头的列(因此,排除了A和B的字母),然后以C开头对其进行排序

答案 3 :(得分:0)

您可以在order by子句中将/** IE9, IE10 and IE11 requires all of the following polyfills. **/ import 'core-js/es6/symbol'; import 'core-js/es6/object'; import 'core-js/es6/function'; import 'core-js/es6/parse-int'; import 'core-js/es6/parse-float'; import 'core-js/es6/number'; import 'core-js/es6/math'; import 'core-js/es6/string'; import 'core-js/es6/date'; import 'core-js/es6/array'; import 'core-js/es6/regexp'; import 'core-js/es6/map'; import 'core-js/es6/weak-map'; import 'core-js/es6/set';函数与ascii一起使用:

abs

select last_name from employees order by abs(ascii(substr(last_name,1,1))-67); 67的ascii代码,对于其他值,您总是从C值函数中获得一个大于zero的整数值。

Rextester Demo

相关问题