如何在雪花中大写第一个字母(不改变其他字母)
How to uppercase first letter (without changing the others) in Snowflake
我知道 INITCAP() and ,但我的问题不同:
如何在给定字符串中仅将 的第一个字母大写,并保留字符串的其余部分没动过?
INITCAP() 只能将首字母大写——但是,它将小写 其他所有字母,如文档中所述:
<delimiters>
specified as an empty string (i.e. '') instructs INITCAP to ignore all delimiters, including whitespace characters, in the input expression (i.e. the input expression is treated as a single, continuous word). The resulting output is a string with the first character capitalized (if the first character is a letter) and all other letters in lowercase.
设法使用一些字符串操作来做到这一点:
SELECT INSERT(my_string, 1, 1, UPPER(LEFT(my_string, 1)));
UPPER(LEFT(my_string, 1))
将提取字符串的第一个字母,并将其大写。
INSERT() 会将字符串的一部分替换为其他内容——在这种情况下,第一个字母将替换为其大写版本。
另一种选择是
UPPER(LEFT(my_string,1))||SUBSTR(my_string,2)
如果我们使用相同的空白模式,将以 1:
的优势赢得代码高尔夫
INSERT(my_string,1,1,UPPER(LEFT(my_string,1)))
我知道 INITCAP() and
如何在给定字符串中仅将 的第一个字母大写,并保留字符串的其余部分没动过?
INITCAP() 只能将首字母大写——但是,它将小写 其他所有字母,如文档中所述:
<delimiters>
specified as an empty string (i.e. '') instructs INITCAP to ignore all delimiters, including whitespace characters, in the input expression (i.e. the input expression is treated as a single, continuous word). The resulting output is a string with the first character capitalized (if the first character is a letter) and all other letters in lowercase.
设法使用一些字符串操作来做到这一点:
SELECT INSERT(my_string, 1, 1, UPPER(LEFT(my_string, 1)));
UPPER(LEFT(my_string, 1))
将提取字符串的第一个字母,并将其大写。
INSERT() 会将字符串的一部分替换为其他内容——在这种情况下,第一个字母将替换为其大写版本。
另一种选择是
UPPER(LEFT(my_string,1))||SUBSTR(my_string,2)
如果我们使用相同的空白模式,将以 1:
的优势赢得代码高尔夫INSERT(my_string,1,1,UPPER(LEFT(my_string,1)))