数据小白007 2023-05-12 17:09 采纳率: 80%
浏览 22
已结题

在SQL里MAC地址格式转换

MAC地址格式转换
现在有三种MAC格式:00:09:5B:EC:EE:F2/00-01-6C-06-A6-29/00016C06A629
这三种格式我需要全部转换成第一种带冒号的,请问最后一中没有符号的怎么转换,目前我只做到了转换第二种,使用replace,2代表的是MAC地址


```sql
case when {?ADDRESS_TYPE?} = '2' and instr({?ADDRESS?},'-')>0 then replace({?ADDRESS?},'-',':') else {?ADDRESS?} end

```

  • 写回答

1条回答 默认 最新

  • 喝茶品人生 2023-05-12 17:47
    关注

    img

    two choice:

    DECLARE @address_type INT = 3
    DECLARE @address VARCHAR(20) = '00016C06A629'
    SELECT
        CASE
            WHEN @address_type = 2 AND CHARINDEX('-', @address) > 0 THEN REPLACE(@address, '-', ':')
            WHEN @address_type = 3 THEN SUBSTRING(@address, 1, 2) + ':' + SUBSTRING(@address, 3, 2) + ':' + SUBSTRING(@address, 5, 2) + ':' + SUBSTRING(@address, 7, 2) + ':' + SUBSTRING(@address, 9, 2) + ':' + SUBSTRING(@address, 11, 2)
            ELSE @address
        END AS formatted_address
    
    
    DECLARE @address_type INT = 3
    DECLARE @address VARCHAR(20) = '00016C06A629'
    
    SELECT
        STUFF(STUFF(STUFF(STUFF(STUFF(@address, 3, 0, ':'), 6, 0, ':'), 9, 0, ':'), 12, 0, ':'), 15, 0, ':') AS formatted_address
    
    
    本回答被专家选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 7月16日
  • 专家已采纳回答 7月8日
  • 创建了问题 5月12日

悬赏问题

  • ¥15 easypoi导出复杂excel
  • ¥20 C++初高中竞赛题,devc++可以通过的
  • ¥60 二次元手游日常任务自动化代肝(相关搜索:自动化)
  • ¥15 mysql将查询的结果作为动态列名怎么实现
  • ¥50 python自动地图截图脚本
  • ¥20 瑞萨RA4M1芯片刷写为arduino r4 minima
  • ¥15 fastreport怎么判断当前页数
  • ¥15 Kylin-Desktop-V10-GFB-Release-JICAI_02- 2207-Build14-ARM64.iso有没有这个版本的系统啊
  • ¥15 能不能通过蓝牙将传感器数据传送到手机上
  • ¥20 100元python和数据科学实验项目