该字段是int,他的十六进制的倒数第四位是一个标识位,我要取满足这位是1的记录,请教下,这条SQL语句如何写。

解决方案 »

  1.   


    select substr('abcdefg',length('abcdefg')-4+1,1)
    from dual
      

  2.   

    字段是INT类型的啊,不是字符串,而且是位操作
      

  3.   

    位操作?? 你不就是要第几个字符吗?int转为16进制  然后看做字符串 取下不行?
      

  4.   

    Copy1楼:
    select substr('abcdefg',length('abcdefg')-4+1,1) from dual
      

  5.   

    3楼的,你转化为二进制倒是可以的,位操作本来就是二进制的操作。
    你只要把这句话怎么转化为在ORACLE SQL语句表示出来就可以
    数据库里的int字段值valuevalue & 8 = 8; // 这个是C++的写法,就是这2个数转化为二进制后,按位与操作
      

  6.   

     select substr(to_char(value,'xxx'),-4,1) from dual;
      

  7.   

     select ...
     from table_name
     where  to_char(value,'xxx') = '1'
      

  8.   

    SELECT substr(to_char(150000,'xxxxxxxxx'),-4,1) FROM dual;
    这样可以取得一个数的倒数第4位哦 ,to_char(150000,'xxxxxxxxx') 可以吧10进制转16进制哦。
      

  9.   

    ,居然没个知道的。自己倒是找到了BITAND