KSOA单据保护表中Clientid解析为mac和ip

SELECT DISTINCT a.*,ISNULL(c.client_net_address,'') AS client_net_address
FROM (
      SELECT *
            ,RIGHT(UPPER(sys.fn_varbintohexstr(CONVERT(VARBINARY(4),CAST(SUBSTRING(clientid,1,3) AS INT)))),2)
            +RIGHT(UPPER(sys.fn_varbintohexstr(CONVERT(VARBINARY(4),CAST(SUBSTRING(clientid,4,3) AS INT)))),2) 
            +RIGHT(UPPER(sys.fn_varbintohexstr(CONVERT(VARBINARY(4),CAST(SUBSTRING(clientid,7,3) AS INT)))),2) 
            +RIGHT(UPPER(sys.fn_varbintohexstr(CONVERT(VARBINARY(4),CAST(SUBSTRING(clientid,10,3) AS INT)))),2) 
            +RIGHT(UPPER(sys.fn_varbintohexstr(CONVERT(VARBINARY(4),CAST(SUBSTRING(clientid,13,3) AS INT)))),2)
            +RIGHT(UPPER(sys.fn_varbintohexstr(CONVERT(VARBINARY(4),CAST(SUBSTRING(clientid,16,3) AS INT)))),2)  AS MAC
      FROM tmp_dj_baohu
      ) AS a
      LEFT JOIN sys.sysprocesses AS b ON a.MAC = b.net_address
      LEFT JOIN sys.dm_exec_connections AS c ON b.spid = c.session_id

 

posted on 2019-02-15 10:45  癫狂编程  阅读(383)  评论(0编辑  收藏  举报

导航

好的代码像粥一样,都是用时间熬出来的