【问题标题】:why this query added extra length upper(trim(LEFT(col_name::varchar, 100)))为什么这个查询增加了额外的长度 upper(trim(LEFT(col_name::varchar, 100)))
【发布时间】:2020-11-02 12:16:10
【问题描述】:
select
    distinct upper(trim(LEFT(col_name::varchar, 100))) as col_name from mytable;

不知何故,这增加了额外的长度,因为 LEFT(col_name::varchar, 100) 从左边返回 100 个字符。

插入另一个表时出现以下错误

错误:101 个八位字节的字符串对于 Varchar(100) 类型来说太长了 如果有人可以帮助我理解这种行为

【问题讨论】:

    标签: sql vertica


    【解决方案1】:

    LEFT(string, N) 函数从字符串的左侧返回 N 个字符

    但是,这 N 个字符可能占用超过 N 个字节 (octects),例如重音字符:

    dbadmin=> select left('é', 1);
     left
    ------
     é
    
    dbadmin=> select octet_length(left('é', 1));
     octet_length
    --------------
                2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 2013-02-01
      • 2020-05-23
      • 1970-01-01
      • 2012-03-14
      • 1970-01-01
      相关资源
      最近更新 更多