gpt4 book ai didi

sql-server - 从 SQL 字段中删除前导零的算法?

转载 作者:行者123 更新时间:2023-12-01 16:53:40 25 4
gpt4 key购买 nike

我刚刚遇到一个有趣的问题,试图从 SQL 中的非数字字段中删除前导零。 (由于它可以包含字符,因此不能只将其转换为数字然后再转换回来。)

这就是我们最终使用的:

SELECT REPLACE(LTRIM(REPLACE(fieldWithLeadingZeroes,'0',' ')),' ','0')

它用空格替换零,向左修剪它,然后将零放回原位。我认为这是一种非常聪明且有趣的方法,尽管如果您以前从未遇到过它,那么可读性就不那么强了。

有没有更清晰的方法来做到这一点?有更有效的方法来做到这一点吗?或者还有其他方法可以做到这一点吗?我对这个问题很感兴趣,并且有兴趣了解解决该问题的任何方法。

最佳答案

查找第一个非零字符,到结尾的子串(最多可以容纳 20 亿个类型)

LTRIM 确实是可选的

DECLARE @MyVar varchar(8000)

SET @MyVar = '000foobar'
SELECT LTRIM(SUBSTRING(@MyVar, PATINDEX ('%[^0]%', @MyVar), 8000))
SET @MyVar = '000000 oh my lord'
SELECT LTRIM(SUBSTRING(@MyVar, PATINDEX ('%[^0]%', @MyVar), 8000))

关于sql-server - 从 SQL 字段中删除前导零的算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2457603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com