[英]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.