我想查询一系列整数列,如下所示:10,1010,101010,201010
我想要所有以10开头的内容。将它们更改为字符串列不是一种选择。
我的感觉是使用位串运算符可能实现这一点:http://www.postgresql.org/docs/9.3/static/functions-bitstring.html
答案 0 :(得分:2)
您无需将它们“更改”为字符串列。只是为了测试而投了:
SELECT *
FROM tbl
WHERE left(int_col::text, 2) = '10';
或者,更简洁:
...
WHERE int_col::text LIKE '10%';
这也是适当的测试,因为你的条件是基于数字的十进制字符串表示。
答案 1 :(得分:1)
这可能看起来很愚蠢,但它可能会欺骗优化器使用索引(如果有的话)
SELECT *
FROM tbl
WHERE int_col = 10
OR int_col/10 = 10
OR int_col/100 = 10
OR int_col/1000 = 10
OR int_col/10000 = 10
OR int_col/100000 = 10
OR int_col/1000000 = 10
OR int_col/10000000 = 10
-- ...
;