首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将“雪花”中单词的第一个字母大写?

问如何将“雪花”中单词的第一个字母大写?
EN

Stack Overflow用户
提问于 2021-03-12 03:11:00
回答 2查看 389关注 0票数 1

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

我目前正在使用这个函数:

代码语言:javascript
复制
SELECT ...
    case when FLAG1 is null then upper(FLAG2) else FLAG1 END as STATUS,
...;

但是,UPPER()函数会将我的所有FLAG2单词全部大写。有谁知道如何将Snowflake中单词的第一个字母大写?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-03-12 03:36:04

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

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

代码语言:javascript
复制
INITCAP( str, '')
票数 3
EN

Stack Overflow用户

发布于 2021-03-12 03:32:36

代码语言:javascript
复制
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');

它可以稍微拆开包装,看看工作中的部件。

代码语言:javascript
复制
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');

这就给出了:

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66588994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档