在ORACLE中显示所有姓名长度为5个字符的员工

新手上路,请多包涵

我在 ORACLE DB 中有一个表,其中有 5 个字母 的员工姓名列 (ENAME)。使用的查询是:

 SELECT ENAME FROM EMP WHERE LENGTH(ENAME) = 5;

这不是返回包含 5 个字母的名称。有人可以建议我正确的吗?

原文由 beyou 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
2 个回答

使用 REGEXP_COUNT 只计算字母

SELECT ENAME FROM EMP where regexp_count(ENAME, '[A-Z]') = 5  ;

REGEXP_COUNT 通过返回模式在源字符串中出现的次数来补充 REGEXP_INSTR 函数的功能。该函数使用输入字符集定义的字符计算字符串。它返回一个整数,指示模式的出现次数。如果未找到匹配项,则该函数返回 0。

原文由 user7294900 发布,翻译遵循 CC BY-SA 4.0 许可协议

SELECT ENAME FROM EMP WHERE ENAME LIKE ('_____');

原文由 Goksel Yesiller 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进