【问题标题】:Getting ascii bytes from text field in PostgreSQL从 PostgreSQL 的文本字段中获取 ascii 字节
【发布时间】:2016-02-10 19:18:25
【问题描述】:

我们希望在 PostgreSQL 中使用 ascii 将一个文本字段转换为字节。

例子:

"table" = t:116*1(1 为第一位)+ a:97*2(2 为第二位 位置) + b: 99*3 等

select ascii([text field]) 只返回第一个字母的 ascii 字节。

【问题讨论】:

    标签: postgresql byte ascii bytea


    【解决方案1】:

    如果你只想要一个与字符串的字节序列对应的bytea值,你可以使用:

    SELECT convert_to('åbçd€','SQL_ASCII')
    

    如果这不是您想要的,您可以转换为一组代码点,然后您可以用它做您想做的事:

    SELECT ascii(c) FROM regexp_split_to_table('åbçd€','') s(c)
    

    请注意,它们处理非 ASCII 字符的方式非常不同。假设一个 UTF8 编码的数据库,convert_to('å','SQL_ASCII') 将为您提供多个 UTF8 代码单元,而 ascii('å') 返回一个 Unicode 代码点。

    【讨论】:

    • 我确实从 my_table 中选择了名称 regexp_split_to_array(name, '')),现在它看起来像这样:{a,b,c,d,e}。是否可以进一步拆分,以便每个字母都有自己的行?
    • 我的答案中的查询(使用regexp_split_to_table())会这样做
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-17
    • 2018-10-25
    • 1970-01-01
    • 2012-05-14
    • 1970-01-01
    相关资源
    最近更新 更多