如何编写SQL查询返回EMP表SerialNumber去前缀S的格式化结果
查询实现方法
针对EMP表中SerialNumber字段带固定前缀S、需要去掉前缀展示的需求,直接截取字符串即可实现,不同数据库的通用写法如下:
- 核心逻辑:所有存储值都是固定1位前缀
S加后续序列值,直接从字符串第2位开始截取到末尾,就能得到需要的001~100格式结果。
-- 适用于MySQL、PostgreSQL、SQL Server等多数数据库 SELECT SUBSTRING(SerialNumber, 2) AS SerialNumber FROM EMP;
-- 适用于Oracle数据库,函数名略有差异 SELECT SUBSTR(SerialNumber, 2) AS SerialNumber FROM EMP;
- 容错写法:如果表中可能存在首位不是
S的异常值,可以加判断逻辑避免误截取:
SELECT CASE WHEN SerialNumber LIKE 'S%' THEN SUBSTRING(SerialNumber, 2) ELSE SerialNumber END AS SerialNumber FROM EMP;
提示:不要直接对字段做类型转换为数值,否则会丢失前导零,返回1、2……100的格式,不符合要求的带前导零展示效果。
内容的提问来源于stack exchange,提问作者UserGoogle
相关产品推荐
相关产品推荐

