修剪、替换和左修剪的函数解释的SQL顺序



你好,

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

SUBSTR(替换(LTRIM(替换(TRIM(ID_NO(,'0',''((,'','0'(,1,13(

谢谢。

LTRIM适用于空白。所以这个代码

a( 删除任何周围的空白(TRIM(

b( 将0s替换为空白(内部REPLACE(,

c(LTRIMs字符串(它只会删除前导空格,由于(a(,前导空格最初必须是0(

d( 将whitpaaces替换回0s(外部REPLACE(

e( (此处并不真正相关(然后对结果执行SUBSTRING

总体效果是,对于字符串开头的0,它们被删除。所有其他0不受LTRIM的影响(同时假装为空格(。

您可以简单地使用convert函数。正如你所知,只有数字输入。

declare @tst as Varchar(50)='   001256'
select   Convert(int,@tst)

输出:1256

最新更新