繁体   English   中英

Oracle SQL函数问题

[英]Oracle sql function question

如何在姓名的开头和结尾位置显示姓名相同的员工的详细信息?

使用SUBSTR()识别ENAME的一部分有两种方法。 更正统的方法的工作原理是,从字符串的末尾算起,传递一个负值作为偏移量:

SQL> select ename
  2  from emp
  3  where substr(ename,1,1) = substr(ename,-1,1)
  4  /

ENAME
----------
TROMBONIST

SQL>

仅出于笑容,我包括使用未记录的REVERSE()函数的第二种方法:

SQL> select ename, reverse(ename)
  2  from emp
  3  where substr(ename,1,1) = substr(reverse(ename),1,1)
  4  /

ENAME      REVERSE(EN
---------- ----------
TROMBONIST TSINOBMORT

SQL>

在10g及更高版本中,我们还可以使用正则表达式解决此问题:

SQL> select ename
  2  from emp
  3  where regexp_substr(ename,'^.') = regexp_substr(ename,'.$')
  4  /

ENAME
----------
TROMBONIST

SQL>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM