背景:对于特殊人员工号,系统末位加入-x标记,连表查询时需要截取。
方案:因位置固定,标记固定;可以将标记替换为空或者截取所需字符
方式一:替换REPLACE()
SELECT REPLACE( '11111111-x', '-x', '' ) AS numb;
-- 结果:11111111
方式二:替换substr()
格式:substr( expression , start , length )
释义:
(1)expression:需要被截取的字符串。
(2)start :开始截取的位置。(注:pgsql不能为负数,可利用反转函数reverse(),将字符串反转过来,在进行截取,截取完成后,在将截取的字符串反转回来)
(3)length :需要截取的长度,(这个参数可以省略,如果没有指定截取长度,默认截取后面的所有字符)
reverse(SUBSTRING(reverse('PostgreSQL-x'),3,99))