如何移除字段前两个零?SQL SUBSTRING函数使用异常求助
问题解决方法
你写的SQL里len(4)是错误用法——LEN函数是计算字符串长度,这里数字4会被转成字符串'4',所以len(4)返回1,导致SUBSTRING从第3位开始只取1个字符,自然得到单个'0'。
要获取字段最右侧4位,有两种简单的修正方式:
方式1:修正SUBSTRING的长度参数
直接把长度写为4,不用LEN函数:
SELECT SUBSTRING(LOGRECNO, 3, 4) FROM [dbo].[DECENNIAL2010] WHERE LOGRECNO LIKE '000%'
方式2:用RIGHT函数更直观
RIGHT函数可以直接提取字符串右侧指定长度的内容,更适合这种固定长度字段的场景:
SELECT RIGHT(LOGRECNO, 4) FROM [dbo].[DECENNIAL2010] WHERE LOGRECNO LIKE '000%'
因为你的字段是固定6位字符,RIGHT取4位刚好就是去掉左侧两位后的结果,不管左侧是不是0,都能得到正确的右侧4位内容。
内容的提问来源于stack exchange,提问作者user3715306
相关产品推荐
相关产品推荐

