![]() |
逆袭的签字笔 · 双目测距 - Champrin - 博客园· 10 月前 · |
![]() |
善良的鸵鸟 · 这17种都不是翡翠,鉴别要点要记住_颜色· 11 月前 · |
![]() |
有情有义的橙子 · 郴州市进入中国二线城市“百强”-湖南省人民政 ...· 11 月前 · |
![]() |
眼睛小的芒果 · 智能座舱升级 新增丰云悦享功能 ...· 1 年前 · |
我在PostgreSQL中有一个名为keywords的简单表,其中有一个名为name的简单文本字段。我想转换所有名称的关键字的第一个字母大写。有没有办法在psql控制台上做到这一点?
发布于 2011-05-30 20:13:29
有一个
initcap()
函数,如果你想要大写每个关键字的第一个字母,而小写下面的字符:
update foo
set bar = initcap(bar)
否则结合使用
substring()
和
upper()
update foo
set bar = upper(substring(bar from 1 for 1)) ||
substring(bar from 2 for length(bar))
http://www.postgresql.org/docs/current/static/functions-string.html
发布于 2015-02-03 23:37:44
select initcap('r. lópez viña tondonia Rioja White Viña');
在我们的Postgres版本(9.0.7)中,这确实给出了正确的答案(R. López Viña Tondonia Rioja White Viña)。
发布于 2018-04-16 04:58:45
initcap函数将特殊字符(破折号、撇号等)后面的字母大写。我只想在空格后大写。
与Denis的答案类似,此函数将转换每个单词的第一个字母(以空格分隔)
CREATE OR REPLACE FUNCTION titlecase(instr varchar) RETURNS varchar AS $$
DECLARE
strarray varchar[] := string_to_array(inStr, ' ');
outstrarray varchar[];
word varchar;
BEGIN
FOREACH word IN ARRAY strarray
![]() |
逆袭的签字笔 · 双目测距 - Champrin - 博客园 10 月前 |
![]() |
善良的鸵鸟 · 这17种都不是翡翠,鉴别要点要记住_颜色 11 月前 |
![]() |
有情有义的橙子 · 郴州市进入中国二线城市“百强”-湖南省人民政府门户网站 11 月前 |