sql处理字符串,替换,截取

背景:对于特殊人员工号,系统末位加入-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))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
SQL中,你可以使用不同的函数来截取字符串的首末位,这取决于你所使用的数据库系统。以下是几种常见数据库字符串截取首末位的方法: 1. MySQL中的方法: - 截取首字符:`LEFT(字段名, 1)` 或者 `SUBSTRING(字段名, 1, 1)` - 截取末字符:`RIGHT(字段名, 1)` 或者 `SUBSTRING(字段名, -1, 1)` 示例: ```sql -- 截取首字符 SELECT LEFT(column_name, 1) FROM table_name; -- 截取末字符 SELECT RIGHT(column_name, 1) FROM table_name; ``` 2. SQL Server中的方法: - 截取首字符:`LEFT(字段名, 1)` - 截取末字符:`RIGHT(字段名, 1)` 示例: ```sql -- 截取首字符 SELECT LEFT(column_name, 1) FROM table_name; -- 截取末字符 SELECT RIGHT(column_name, 1) FROM table_name; ``` 3. Oracle中的方法: - 截取首字符:`SUBSTR(字段名, 1, 1)` - 截取末字符:`SUBSTR(字段名, -1, 1)` 或者 `SUBSTR(字段名, LENGTH(字段名) - 1, 1)` 示例: ```sql -- 截取首字符 SELECT SUBSTR(column_name, 1, 1) FROM table_name; -- 截取末字符 SELECT SUBSTR(column_name, -1, 1) FROM table_name; -- 或者 SELECT SUBSTR(column_name, LENGTH(column_name) - 1, 1) FROM table_name; ``` 4. PostgreSQL中的方法: - 截取首字符:`LEFT(字段名, 1)` 或者 `SUBSTRING(字段名 FROM 1 FOR 1)` - 截取末字符:`RIGHT(字段名, 1)` 或者 `SUBSTRING(字段名 FROM -1 FOR 1)` 示例: ```sql -- 截取首字符 SELECT LEFT(column_name, 1) FROM table_name; -- 或者 SELECT SUBSTRING(column_name FROM 1 FOR 1) FROM table_name; -- 截取末字符 SELECT RIGHT(column_name, 1) FROM table_name; -- 或者 SELECT SUBSTRING(column_name FROM -1 FOR 1) FROM table_name; ``` 请注意,上述示例代码需要你根据实际的表名和列名进行相应的替换
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值