如题。数据库一个字段的值是从1到最大15的1或0的数字列 ,  我想取得 第一位或者第三位或者第10位是 1的行数据 
如何操作消耗最少呢 ? 如果支持与或操作就简单多了 谢谢

解决方案 »

  1.   

    if 517 & YourNumber = 517
    select 1
    else
    select 0
      

  2.   

    oh, 应该是if 517 & YourNumber > 0
    select 1 
    else 
    select 0
      

  3.   

    谢谢楼上的楼上回复Table : bitandor 11001
    00100
    10110SELECT          11111 & col1 AS col2
    FROM            bitandor结果变成了
             10849
    100
    9062请问如何解决?
      

  4.   

    SELECT  case when 1000000101 & col1 > 0 then score end
    FROM  bitandor
      

  5.   

    SELECT  case when 1000000101 & col1 > 0 then score end
    FROM  bitandor
      

  6.   


    bitandor中取出来的列值和11111等都是十进制的,所以结果不是11001。如果你想按二进制使用,必须先将他们转换成二进制的十进制形式。比如11111是个二进制数,它的十进制是31,同理,11001的是25,他们与的结果还是25,即
    select 31 & 25
    go/*
    -----------
             25
    */