select ipaddress as ipAddress_10,right(cast(ipaddress as varbinary),8) as ipAddress_16 from snmpcollectdata:

解决方案 »

  1.   

    select ipaddress as ipAddress_10,right(cast(cast(ipaddress as varbinary) as varchar(20)),8) as ipAddress_16 from snmpcollectdata
      

  2.   

    用上面的两种方法得出的都是如下:2081464330 |?
    2081464330 |?
    2081464330 |?
    2081464330 |?
    2081464330 |?right这个函数好像只能对字符型的吧,所以我想把ipAddress转换位字符.
    请问:还有其他办法吗?
      

  3.   

    select cast(cast(ipaddress as int)/power(2,24)as varchar(3)) +'.'+cast((cast(ipaddress as int)/power(2,16)% 256 )as varchar(3))
    +'.'+cast(((cast(ipaddress as int)/256)% 256 )as varchar(3))+'.'+cast((cast(ipaddress as int)% 256 )as varchar(3)) as ipAddress from snmpcollectdata
      

  4.   

    Rotaxe(程序员):这招真是不错,把四个分组顺序颠倒之后,正是我所需要的,厉害!