代码之家  ›  专栏  ›  技术社区  ›  Pointer

更新postgresql首字母大写的列

  •  1
  • Pointer  · 技术社区  · 6 年前

    postgresql中的update列如何只设置第一个字符大写?

    例如,测试--->测试

    我在努力,但不工作

    UPDATE car SET carName=UPPER(LEFT(carName,1)) + LOWER(SUBSTRING(carName,2,LEN(carName)))
    
    1 回复  |  直到 6 年前
        1
  •  4
  •   Pavel Stehule    6 年前

    这不应该是个问题:

    postgres=# select * from f10;
    +--------+
    |   a    |
    +--------+
    | nazdar |
    +--------+
    (1 row)
    
    postgres=# update f10 set a = upper(substring(a from 1 for 1)) || lower(substring(a from 2));
    UPDATE 1
    postgres=# select * from f10;
    +--------+
    |   a    |
    +--------+
    | Nazdar |
    +--------+
    (1 row)
    

    也许你可以用 initcap 功能也:

    postgres=# select initcap('hello world');
    +-------------+
    |   initcap   |
    +-------------+
    | Hello World |
    +-------------+
    (1 row)