postgresql 文本[]上的SQL初始化

mxg2im7a  于 2022-11-23  发布在  PostgreSQL
关注(0)|答案(1)|浏览(117)

我正在尝试将表格中文字数组中的所有单字大写:

update locations
set aka  = initcap(aka)

但是initcap()不支持文本数组,如何才能达到同样的效果呢?

eblbsuwk

eblbsuwk1#

转换为text并返回:

UPDATE locations
SET    aka = initcap(aka::text)::text[]
WHERE  aka IS DISTINCT FROM initcap(aka::text)::text[];

但是不要碰那些不会改变的行,这样会降低成本。请参阅:

  • 如何(或可以)对多个列执行SELECT DISTINCT操作?

我想你知道initcap()并不完全是“大写”字符串。它...
将每个单词的第一个字母转换为大写,其余字母转换为小写。

相关问题