如何在sql中以a和b开头显示员工姓名

时间:2010-09-17 22:01:02

标签: sql

我想显示名字以a和b开头的员工姓名,它应该像list一样显示员工的'a'作为第一个字母,然后'b'作为第一个字母......

所以任何身体告诉我显示这些的命令是什么......

13 个答案:

答案 0 :(得分:29)

要按顺序列出以A或B开头的员工姓名......

select employee_name 
from employees
where employee_name LIKE 'A%' OR employee_name LIKE 'B%'
order by employee_name

如果您使用的是Microsoft SQL Server,则可以使用

....
where employee_name  LIKE '[A-B]%'
order by employee_name

这不是标准的SQL,虽然它只是转换为以下的。

WHERE  employee_name >= 'A'
       AND employee_name < 'C' 

对于所有变体,您需要考虑是否要包含重音变体,例如Á,并测试上面的查询是否在您的RDBMS和排序规则选项上执行了这些操作。

答案 1 :(得分:5)

select columns
  from table
 where (
         column like 'a%' 
      or column like 'b%' )
 order by column asc

答案 2 :(得分:2)

如果需要查找一系列起始字符,正则表达式可以正常工作。以下查找以A,B,C或D开头的所有员工姓名,并添加“UPPER”调用,以防名称在数据库中以起始小写字母显示。我的查询适用于Oracle(我没有测试其他数据库)。以下将返回例如:
亚当斯
亚当斯
院长
院长

此查询还通过&#34; lower&#34;忽略ORDER BY中的大小写。拨打:

SELECT employee_name 
FROM employees
WHERE REGEXP_LIKE(UPPER(TRIM(employee_name)), '^[A-D]')
ORDER BY lower(employee_name)

答案 3 :(得分:1)

select employee_name 
from employees
where employee_name LIKE 'A%' OR employee_name LIKE 'B%'
order by employee_name

答案 4 :(得分:0)

cfengineers说了什么,除了听起来你也想要对它进行排序。

select columns
  from table
 where (
         column like 'a%' 
      or column like 'b%' )
order by column

也许你最好查看一些关于SQL的教程,这很有意思。

答案 5 :(得分:0)

如果您询问字母顺序,则语法为:

SELECT * FROM table ORDER BY column

我可以在不知道您的表和字段名称的情况下提供的最佳示例:

SELECT * FROM employees ORDER BY name

答案 6 :(得分:0)

select * 
from stores 
where name like 'a%' or 
name like 'b%' 
order by name

答案 7 :(得分:0)

select name_last, name_first
from employees
where name_last like 'A%' or name_last like 'B%'
order by name_last, name_first asc

答案 8 :(得分:0)

在这里我从问题中理解的是从&#34; a&#34;然后&#34; b&#34; 例如:

  • 阿沛
  • 阿布舍克巴克
  • 阿比纳夫

所以应该有两个条件,两者都应该是真的意味着你不能使用&#34; OR&#34;操作者 订购不是强制性的,但如果你使用它会很好。

Select e_name from emp 
where  e_name like 'a%' AND e_name like '_b%'
Ordered by e_name

答案 9 :(得分:0)

从A到Z:

select employee_name from employees ORDER BY employee_name ;

从Z到A:

select employee_name from employees ORDER BY employee_name desc ;

答案 10 :(得分:0)

Oracle: 只是感觉以不同的方式来做。缺点:它不执行全索引扫描。但是仍然给出结果,可以在子字符串中使用它。

select employee_name 
from employees
where lpad(employee_name,1) ='A'
 OR lpad(employee_name,1) = 'B'
order by employee_name

我们可以在SQL Server中使用LEFT代替lpad。仍然建议使用此方法不是一个好主意。

答案 11 :(得分:0)

我们也可以使用REGEXP

select employee_name 
from employees
where employee_name REGEXP '[ab].*'
order by employee_name

答案 12 :(得分:-1)

employeeName是表employee中的列名

'a%'获取字符串(此处的EmployeeName)以a开头,b也相同

select employeeName 
from employee where employeeName LIKE 'a%' 
OR employeeName LIKE 'b%' 
order by employeeName