MySQL 的 bit_count 函数在某些情况下非常有用:
http://dev.mysql.com/doc/refman/5.5/en/bit-functions.html#function_bit-count
现在我想在其他不支持它的数据库中使用该功能。最简单的方法是什么(不创建存储函数,因为我无权访问 DDL 级别的客户端数据库)。
一个非常冗长的选项是这个(对于TINYINT
数据类型):
SELECT (my_field & 1) +
(my_field & 2) >> 1 +
(my_field & 4) >> 2 +
(my_field & 8) >> 3 +
(my_field & 16) >> 4 +
...
(my_field & 128) >> 7
FROM my_table
对于 Sybase SQL Anywhere,该>>
运算符似乎不可用,因此除法2, 4, 8, 16
也可以。
还有其他不那么冗长的选项吗?