SQL查询显示姓名第二个字符在'A'和'M'之间的员工

问题描述 投票:0回答:2

我尝试过这些,但似乎都不起作用。有人可以帮我吗?

SELECT ename AS "Employee Name"
FROM  emp
WHERE ename BETWEEN LIKE ('_A%' AND  '_M%');

SELECT ename AS "Employee Name"
FROM  emp
WHERE ename BETWEEN LIKE '_A%' AND LIKE '_M%';
database oracle-sqldeveloper
2个回答
0
投票

这可能是一篇相当老的帖子,但由于还没有人回答,这是我的看法(请记住,在任何情况下这可能不是唯一的方法或最好的方法,因为我还不是很有经验) ):

SELECT ename AS "Employee Name"
FROM  emp
WHERE UPPER(SUBSTR(ename, 2, 1)) BETWEEN 'A' AND 'M';

如果您的数据全部大写,则不需要 UPPER 函数,但以防万一。此外,如果您想选择字段名称的第二个字母在“A”和“M”之间的数据,两者都包含,您可能想尝试使用 BETWEEN 'A' AND 'N' 代替,因为当我使用我的 sql 开发人员尝试代码时,BETWEEN 函数中 AND 语句后面的表达式是排他的。希望这有帮助:)


0
投票
SELECT ename AS "Employee Name"
FROM  emp
WHERE ename LIKE '_A%' OR ename LIKE '_M%';
© www.soinside.com 2019 - 2024. All rights reserved.