【发布时间】:2010-03-16 19:51:19
【问题描述】:
我刚刚遇到了一个有趣的问题,即尝试从 SQL 中的非数字字段中修剪前导零。 (因为它可以包含字符,所以它不能只是转换为数字然后再返回。)
这是我们最终使用的:
SELECT REPLACE(LTRIM(REPLACE(fieldWithLeadingZeroes,'0',' ')),' ','0')
它用空格替换零,然后修剪它,然后将零放回原处。我认为这是一种非常聪明和有趣的方法,尽管如果你以前从未遇到过它,它的可读性就不那么好了。
有没有更清晰的方法来做到这一点?有没有更有效的方法来做到这一点?或者任何其他方式来做这个时期?我对这个问题很感兴趣,并有兴趣了解解决它的任何方法。
【问题讨论】:
-
如果字段从不包含以空格开头的空格
-
@John - 是的。在这种情况下,它不会。它是一个 ID 字段,可以包含字母或数字。
-
嗯,我希望能得到更多答案。真的没有其他方法可以做到这一点吗?
标签: sql-server trim