我意外地生成了我的表,其中一些列为十六进制字符串,当它们应为小数时。哎呦。但无论如何,作为查询的一部分,我减去它们:
我找不到文档,所以我来这里问:两个(十六进制)字符串之间的减法究竟是什么意思?它似乎没有将它们转换为base16整数并减去,它不是不同字符的数量。减去2个不同的字符串会产生0.的差异。那是什么意思?
答案 0 :(得分:3)
字符串从左到右逐个字母地解释为数字,直到解释必须停止。这些数字被减去。如果第一个字符都是字母,则结果为0。
2f - 1f is 1
f - 4xxx is -4
761xxx - facb is 761
进一步的测试:
select '1aaa' - '-1.1bbbb' is 2.1
select '.1aaa' - '-1.1bbbb' is 1.2000000000000002