SQL trim 的函数解释顺序,替换并离开 trim

SQL order of function explanation for trim, replace and left trim

美好的一天,

我在 Netezza SQL 中发现了一段非常有用的代码,可以从 ID 号码中删除前导零。然而,我并不完全理解 SQL 背后的逻辑处理。有人可以协助解释 SQL 如何处理下面的代码行吗?我知道有人从里到外阅读,但 LTRIM 和第二个替换语句之间的部分让我感到困惑。

SUBSTR(REPLACE(LTRIM(REPLACE(TRIM(ID_NO),'0','')),'','0'), 1, 13)

谢谢你。

LTRIM 使用空格。所以这段代码

a) 删除所有周围的空格 (TRIM)

b) 将 0 替换为空格(内部 REPLACE),

c) LTRIMs 字符串(它只会删除前导空格,因为 (a))

d) 将 whitepaaces 替换回 0s(外部 REPLACE

e)(这里不太相关)然后对结果执行 SUBSTRING

总体效果是,对于字符串开头的那些 0,它们已被删除。 LTRIM.

不会影响所有其他 0(同时假装是空格)

您可以简单地使用转换功能。如您所知,输入的只有数字。

declare @tst as Varchar(50)='   001256'

select   Convert(int,@tst)

输出: 1256