String 雪花在开始时附加字符串
我有一个列,其中包含如下所示的值,我想在删除前导零后检查第一个字符是否为R,如果第一个字符不等于R,则在开头添加,如预期值所示String 雪花在开始时附加字符串,string,snowflake-cloud-data-platform,String,Snowflake Cloud Data Platform,我有一个列,其中包含如下所示的值,我想在删除前导零后检查第一个字符是否为R,如果第一个字符不等于R,则在开头添加,如预期值所示 Column value ------------ 00002349954 123456 R34854-1 R1234-3 01278993 345677 我希望上面的值形成如下。谢谢你在这方面的帮助。谢谢 Expected Values --------------- R2349954 R123456 R34854-1 R1234-3 R1278993 R34567
Column value
------------
00002349954
123456
R34854-1
R1234-3
01278993
345677
我希望上面的值形成如下。谢谢你在这方面的帮助。谢谢
Expected Values
---------------
R2349954
R123456
R34854-1
R1234-3
R1278993
R345677
试试这个:
select 'R' || ltrim(v,'0R' )
from values ('00002349954'),('R1234-3'),('123456') tmp(v);
+-----------------------+
| 'R' || LTRIM(V,'0R' ) |
+-----------------------+
| R2349954 |
| R1234-3 |
| R123456 |
+-----------------------+
LTRIM试试这个:
select 'R' || ltrim(v,'0R' )
from values ('00002349954'),('R1234-3'),('123456') tmp(v);
+-----------------------+
| 'R' || LTRIM(V,'0R' ) |
+-----------------------+
| R2349954 |
| R1234-3 |
| R123456 |
+-----------------------+
LTRIM假设值中没有空格,则可以使用以下选项:
REPLACE(LTRIM(REPLACE(colname,'0',''),'0')
CONCAT('R',colname)
SELECT
CASE
WHEN REPLACE(LTRIM(REPLACE(colname, '0', ' ')), ' ', '0') like 'R%' THEN REPLACE(LTRIM(REPLACE(colname, '0', ' ')), ' ', '0')
ELSE CONCAT('R',REPLACE(LTRIM(REPLACE(colname, '0', ' ')), ' ', '0'))
假设值中没有空格,则可以使用:
REPLACE(LTRIM(REPLACE(colname,'0',''),'0')
CONCAT('R',colname)
SELECT
CASE
WHEN REPLACE(LTRIM(REPLACE(colname, '0', ' ')), ' ', '0') like 'R%' THEN REPLACE(LTRIM(REPLACE(colname, '0', ' ')), ' ', '0')
ELSE CONCAT('R',REPLACE(LTRIM(REPLACE(colname, '0', ' ')), ' ', '0'))
非常好,谢谢。我不知道LTRIM在《雪花》中有那么强大:-)酷,谢谢@Gokhan…非常好,谢谢。我不知道LTRIM在《雪花》中有那么强大:-)酷,谢谢@Gokhan。。。