无法连接 varchar 和 ==

Unable to concatenate a varchar and ==

我正在使用 postgresql 9 我正在 运行查询 base64 解码一个值并打印其结果:

SELECT convert_from(decode(CONCAT('aWFuY3VkYXRlc3QrMTAwQGdtYWlsLmNvbQ','=='),'base64'),'utf-8');

但是,当我 运行 对 table 进行相同的查询时,我得到了错误: 我的查询的版本 1:

SELECT t.data,convert_from(decode(CONCAT(t.data,'=='),'base64'),'utf-8')
FROM table t;

以上给了我ERROR: unexpected "=" 我的查询的版本 2:

SELECT t.data,convert_from(decode(t.data,'base64'),'utf-8')
FROM table t;

以上给了我ERROR: invalid byte sequence for encoding "UTF8": 0x8c

t.data 在我的 table t.

中的数据类型为 Varchar(255)

我不知道如何解决这个问题。是否有不同的方法来解码 base64 数据并从查询中打印出来?

只需使用 || 即可 concat:

SELECT convert_from(decode('aWFuY3VkYXRlc3QrMTAwQGdtYWlsLmNvbQ' || '==','base64'),'utf-8');
       convert_from        
---------------------------
 iancudatest+100@gmail.com

对于table:

SELECT t.data,
       convert_from(decode(t.data::text || '==','base64'),'utf-8')
FROM table t;