Sql 如何大写雪花中单词的第一个字母?

Sql 如何大写雪花中单词的第一个字母?,sql,string,snowflake-cloud-data-platform,Sql,String,Snowflake Cloud Data Platform,我需要在Snowflake中大写SQL qwery中某些单词的第一个字母 我目前正在使用此功能: SELECT ... case when FLAG1 is null then upper(FLAG2) else FLAG1 END as STATUS, ...; 但是,UPPER()函数会使我所有的FLAG2单词完全大写。有人知道如何大写雪花中单词的第一个字母吗 SELECT column1, IFF(column1, UPPER(SUBSTRING(column2,1,1)) ||

我需要在Snowflake中大写SQL qwery中某些单词的第一个字母

我目前正在使用此功能:

SELECT ...
    case when FLAG1 is null then upper(FLAG2) else FLAG1 END as STATUS,
...;
但是,
UPPER()
函数会使我所有的
FLAG2
单词完全大写。有人知道如何大写雪花中单词的第一个字母吗

SELECT column1, IFF(column1, UPPER(SUBSTRING(column2,1,1)) || LOWER(SUBSTRING(column2,2)), column2) 
FROM VALUES 
    (true,'all_lower'),
    (true, 'ALL_UPPER'),
    (true, 'mIxEd'),
    (false,'all_lower'),
    (false, 'ALL_UPPER'),
    (false, 'mIxEd');
可以稍微打开包装,以查看正在工作的部件

SELECT column1 as flag
     ,column2 as orig
     ,UPPER(SUBSTRING(column2,1,1)) || LOWER(SUBSTRING(column2,2)) as first_upper
     ,IFF(flag, first_upper, orig)
FROM VALUES 
    (true,'all_lower'),
    (true, 'ALL_UPPER'),
    (true, 'mIxEd'),
    (false,'all_lower'),
    (false, 'ALL_UPPER'),
    (false, 'mIxEd');
其中:

FLAG    ORIG        FIRST_UPPER   IFF(FLAG, FIRST_UPPER, ORIG)
TRUE    all_lower   All_lower     All_lower
TRUE    ALL_UPPER   All_upper     All_upper
TRUE    mIxEd       Mixed         Mixed
FALSE   all_lower   All_lower     all_lower
FALSE   ALL_UPPER   All_upper     ALL_UPPER
FALSE   mIxEd       Mixed         mIxEd
可以稍微打开包装,以查看正在工作的部件

SELECT column1 as flag
     ,column2 as orig
     ,UPPER(SUBSTRING(column2,1,1)) || LOWER(SUBSTRING(column2,2)) as first_upper
     ,IFF(flag, first_upper, orig)
FROM VALUES 
    (true,'all_lower'),
    (true, 'ALL_UPPER'),
    (true, 'mIxEd'),
    (false,'all_lower'),
    (false, 'ALL_UPPER'),
    (false, 'mIxEd');
其中:

FLAG    ORIG        FIRST_UPPER   IFF(FLAG, FIRST_UPPER, ORIG)
TRUE    all_lower   All_lower     All_lower
TRUE    ALL_UPPER   All_upper     All_upper
TRUE    mIxEd       Mixed         Mixed
FALSE   all_lower   All_lower     all_lower
FALSE   ALL_UPPER   All_upper     ALL_UPPER
FALSE   mIxEd       Mixed         mIxEd
使用函数,它返回输入字符串(expr),每个单词的第一个字母为大写,后面的字母为小写

如果只希望字符串中的第一个字母大写,而忽略单词分隔符(即,将输入表达式视为单个连续单词),请将空字符串指定为delimiters参数

INITCAP( str, '')
使用函数,它返回输入字符串(expr),每个单词的第一个字母为大写,后面的字母为小写

如果只希望字符串中的第一个字母大写,而忽略单词分隔符(即,将输入表达式视为单个连续单词),请将空字符串指定为delimiters参数

INITCAP( str, '')

谢谢,这正是我需要的!谢谢,这正是我需要的!