从SQL语句中的字段中删除前导零
时间:2020-03-06 14:21:04 来源:igfitidea点击:
我正在处理从SQLServer数据库读取以生成提取文件的SQL查询。从特定字段中删除前导零的要求之一是一个简单的" VARCHAR(10)"字段。因此,例如,如果该字段包含" 00001A",则SELECT语句需要将数据返回为" 1A"。
SQL中是否可以通过这种方式轻松删除前导零?我知道有一个" RTRIM"功能,但这似乎只能删除空格。
解决方案
select substring(ColumnName, patindex('%[^0]%',ColumnName), 10)
如果我们希望查询返回0而不是零或者任何其他值,则可以将其转换为如下的case语句:
select CASE WHEN ColumnName = substring(ColumnName, patindex('%[^0]%',ColumnName), 10) THEN '0' ELSE substring(ColumnName, patindex('%[^0]%',ColumnName), 10) END