我有一个表,其中有一TEXT
列包含十六进制数字。我现在需要将它们表示为它们真正的整数,但找不到这样做的方法(类似于to_hex()
反向)。
我知道我可以像这样转换文字十六进制值:
SELECT x'DEADBEEF';
但是,如果要转换的值来自列,我该如何应用这样的东西?连接'x'
到列名显然不起作用,因为它不再是字符串文字。
我在PostgreSQL 邮件列表中发现了一个非常丑陋的函数,它将一个查询字符串拼凑在一起,这样函数参数又是一个文字,然后执行该函数,但这种方法完全是反常的——必须有一个更好的方式。至少我希望如此,因为这条消息已经有将近十年的历史了……</p>
当然,我知道首先将有问题的值作为整数存储在数据库中是可行的方法。但在这种情况下这是不可能的,所以我一直试图破译这些字符串......)