Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 雪花在开始时附加字符串_String_Snowflake Cloud Data Platform - Fatal编程技术网

String 雪花在开始时附加字符串

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

我有一个列,其中包含如下所示的值,我想在删除前导零后检查第一个字符是否为R,如果第一个字符不等于R,则在开头添加,如预期值所示

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')
  • 添加前导“R”:
    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')
  • 添加前导“R”:
    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。。。