如标题所示,如何最好地将flags列的int值解释为简单文本?我想让sql自动解释任何给定的值介于1和1023之间(2⁰ <= x<2¹⁰ )其中thix数只能用(2⁰ 或2¹ 或2² 或2³ 或2⁴ 或2⁵ 或2⁶ 或2⁷ 或2⁸ 或2⁹) 只使用两个给定的幂中的任何一个。
djmepvbi1#
简单的答案是使用“&”位运算符。比如:
(myValue & 1) (myValue & 2) (myValue & 4) (myValue & 8) (myValue & 16) -- etc
结果值将是0或正在测试的2的幂。为了让事情变得简单,你可以把它转换成一个位,如果它不是零,它将变成1。稍微长一点的答案是:我建议把它变成一个视图。这样,任何时候需要引用特定列时,都可以使用视图,而不必在每个使用它们的过程/查询中放入位引用和位强制转换。
1条答案
按热度按时间djmepvbi1#
简单的答案是使用“&”位运算符。比如:
结果值将是0或正在测试的2的幂。为了让事情变得简单,你可以把它转换成一个位,如果它不是零,它将变成1。
稍微长一点的答案是:我建议把它变成一个视图。这样,任何时候需要引用特定列时,都可以使用视图,而不必在每个使用它们的过程/查询中放入位引用和位强制转换。