目标是取两个破折号之间的数字,我可以做到这一点,但问题是我需要删除返回值的前导零。2我如何在不删除所有零的情况下合并LTRIM函数或其他函数呢?
样品:
123-010-456
结果应为10
SELECT[Phone],
REPLACE(SUBSTRING([Phone], CHARINDEX('-', [Phone]), CHARINDEX('-', [Phone])),'-','') AS substring
FROM [SalesLT].[Customer]
目标是取两个破折号之间的数字,我可以做到这一点,但问题是我需要删除返回值的前导零。2我如何在不删除所有零的情况下合并LTRIM函数或其他函数呢?
样品:
123-010-456
结果应为10
SELECT[Phone],
REPLACE(SUBSTRING([Phone], CHARINDEX('-', [Phone]), CHARINDEX('-', [Phone])),'-','') AS substring
FROM [SalesLT].[Customer]
3条答案
按热度按时间pwuypxnk1#
如果您的数据模式/格式是固定的,则以下内容将有所帮助
f45qwnt82#
您可以将以下内容合并为一个查询,但为了更好地理解,我将其分解为3个步骤。
fykwrbwg3#
你可以尝试提取中间部分并将其转换为int -这将删除所有前导零,同时保留尾随零...如果需要,你可以将其转换回varchar。下面是一个示例: